Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Nov 1998 09:40:46 +0000
From:      David Beck <DBECK@ludens.elte.hu>
To:        Terry Lambert <tlambert@primenet.com>
Cc:        tlambert@primenet.com, freebsd-hackers@FreeBSD.ORG
Subject:   Re: SYSV Semaphores & mmap problems
Message-ID:  <Pine.VMS.3.91-vms-b4.981123093440.30337A-100000@ludens.elte.hu>
In-Reply-To: <199811210335.UAA09506@usr08.primenet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 21 Nov 1998, Terry Lambert wrote:

> Date: Sat, 21 NOV 1998 03:35:51 +0000 (GMT)
> From: Terry Lambert <tlambert@primenet.com>
> To: David Beck <DBECK@ludens.elte.hu>
> Cc: tlambert@primenet.com, freebsd-hackers@FreeBSD.ORG
> Subject: Re: SYSV Semaphores & mmap problems
> 
> > > > I ran into two problems with FreeBSD:
> > > > 1., If I create a program with a few threads and then I block
> > > >     one thread with a SYSV semaphore, then it blocks all threads.
> > > >     Any ideas ?
> > >
> > > Use a mutex instead.  SYSV semaphores are not process reentrant
> > > (they're semaphores).  Neither are pthreads mutexes, but at
> > > least you will only block threads wanting the mutex instead of
> > > all threads.
> >
> > Yep. The problem is to control access to a shared memory segment
> > between unrelated processes and in the same time the server process
> > actually is a multithreaded process.
> 
> Use fcntl(2) based locks.
> 
> Preferrably against an mmap'ed file as the shared memory region
> instead of a SYSV shared memory region, to avoid using up kernel
> virtual address space.
> 
> Alternately, someone need to write a non-blocking version of
> the system call and implement call conversion in a (new) libipc_r.
> 

Thank you. The sysv semaphore seems fairly slow on other systems, anyway.
Do you know is fcnt faster ?

Regards, David.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.VMS.3.91-vms-b4.981123093440.30337A-100000>