From owner-freebsd-hackers Mon Sep 16 18: 9:41 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1E80237B400 for ; Mon, 16 Sep 2002 18:09:40 -0700 (PDT) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.FreeBSD.org (Postfix) with ESMTP id D2C4443E65 for ; Mon, 16 Sep 2002 18:09:39 -0700 (PDT) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id A6FEBAE165; Mon, 16 Sep 2002 18:09:39 -0700 (PDT) Date: Mon, 16 Sep 2002 18:09:39 -0700 From: Alfred Perlstein To: Daniel Eischen Cc: hackers@FreeBSD.ORG Subject: Re: sem_* API Message-ID: <20020917010939.GE86737@elvis.mu.org> References: <20020916231141.GB86737@elvis.mu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG * Daniel Eischen [020916 16:41] wrote: > On Mon, 16 Sep 2002, Alfred Perlstein wrote: > > > * Alfred Perlstein [020916 16:08] wrote: > > > I got sort of bored so I wrote a kernel version of the POSIX sem_* > > > functions so that we can support sem_open() and sem_init() when 'pshared' > > > is set to true. Basically this is posix semaphores that can be used > > > between processes. > > > > > > I haven't tested it as of yet (but I will be soon), here's the delta > > > for it. > > > > > > Does anyone know a test suite for this API? > > > > Of course actually including the _new_ files might help, > > the diff can be pulled from here: > > > > http://people.freebsd.org/~alfred/deltas/sem.diff.gz > > I'll only comment on the pthread portion. > > Please put objects in the beginning of the file before functions > are implemented (named_sems and named_sems_mtx are declared > between functions) to keep in style with the rest of the thread > code. > > If those objects (named_sems and named_sems_mtx) need to be external > then you must precede them with underscores. I think they can be > static though. > > If you use mutexes internally (that the application doesn't know > about) then you must use the _pthread_mutex_* variants (single > underscore). The library treats these differently so that the > thread will not be canceled or have a signal handler installed > while holding one of these. Thank you, I've applied all your suggested changes to my local tree. Yes, the structures are local, I neglected to 'staticize' them. I've also applied the delta to libc_r since Julian said I would need to do that to test it for now. Does it make sense for these to actually be in libc? This is because they can be used to inter-process syncronization, not just between threads... -- -Alfred Perlstein [alfred@freebsd.org] 'Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.' To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message