Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jun 2009 16:40:06 GMT
From:      Andreas Longwitz <longwitz@incore.de>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/102834: [patch] mail(1) hangs on the sigsuspend system call in popen.c
Message-ID:  <200906101640.n5AGe6On007940@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/102834; it has been noted by GNATS.

From: Andreas Longwitz <longwitz@incore.de>
To: bug-followup@freebsd.org,
 longwitz@incore.de
Cc:  
Subject: Re: bin/102834: [patch] mail(1) hangs on the sigsuspend system call in popen.c
Date: Wed, 10 Jun 2009 18:36:43 +0200

 --Boundary-00=_bE+LKNs2EjMVV2P
 Content-Type: text/plain;
   charset="iso-8859-1"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 The described problem still occurs in all FreeBSD versions especially on SMP 
 machines. The appended patch for 6.4 Stable works without problems for more 
 than 3 years.
 
 Dr. Andreas Longwitz  Data Service GmbH, Beethovenstr. 2A, 23617 Stockelsdorf
 
 --Boundary-00=_bE+LKNs2EjMVV2P
 Content-Type: text/x-diff;
   charset="iso 8859-15";
   name="patch.popen.c.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename="patch.popen.c.diff"
 
 --- popen.c.orig	2002-06-30 07:25:06.000000000 +0200
 +++ popen.c	2009-05-07 15:58:19.000000000 +0200
 @@ -364,11 +364,11 @@
  	int pid;
  {
  	sigset_t nset, oset;
 -	struct child *cp = findchild(pid);
  
  	(void)sigemptyset(&nset);
  	(void)sigaddset(&nset, SIGCHLD);
  	(void)sigprocmask(SIG_BLOCK, &nset, &oset);	
 +	struct child *cp = findchild(pid);
  
  	while (!cp->done)
  		(void)sigsuspend(&oset);
 @@ -386,11 +386,11 @@
  	int pid;
  {
  	sigset_t nset, oset;
 -	struct child *cp = findchild(pid);
  
  	(void)sigemptyset(&nset);
  	(void)sigaddset(&nset, SIGCHLD);
  	(void)sigprocmask(SIG_BLOCK, &nset, &oset);	
 +	struct child *cp = findchild(pid);
  
  	if (cp->done)
  		delchild(cp);
 
 --Boundary-00=_bE+LKNs2EjMVV2P--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906101640.n5AGe6On007940>