Date: Thu, 13 Jun 1996 00:57:46 GMT From: James Raynard <fqueries@jraynard.demon.co.uk> To: eeg@telecom.at Cc: FreeBSD-questions@freebsd.org Message-ID: <199606130057.AAA15921@jraynard.demon.co.uk> In-Reply-To: <199606122142.VAA02488@fh> (message from Franz Hollerer on Wed, 12 Jun 1996 21:42:14 GMT)
next in thread | previous in thread | raw e-mail | index | archive | help
> I use semaphore to control read and write access to a > shared memory. > For the different semop() I set the SEM_UNDO flag. > So the kernel should undo the semaphore operations if the > process exits or is killed. > With Linux and SCO this works. But under FreeBSD 2.1 > all other processes (which wait for the semaphore) hang. > > *) Please, can someone tell me, if this is a bug in > my program or a bug in the FreeBSD kernel? Yep, this is a bug in -release which has since been fixed. Apply the following patch in /usr/src/sys/kern/kern_exit.c:- *** kern_exit.c Tue May 30 17:05:25 1995 --- kern_exit.c.new Wed Dec 6 15:12:28 1995 *************** *** 130,135 **** --- 130,139 ---- */ fdfree(p); + #ifdef SYSVSEM + semexit(p); + #endif + /* The next two chunks should probably be moved to vmspace_exit. */ vm = p->p_vmspace; #ifdef SYSVSHM (and also add #include <sys/sem.h> at the top of the file). -- James Raynard, Edinburgh, Scotland james@jraynard.demon.co.uk jraynard@FreeBSD.ORG
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606130057.AAA15921>