apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pier Fumagalli <p...@betaversion.org>
Subject Re: cvs commit: apr/dso/unix dso.c
Date Mon, 25 Mar 2002 23:18:23 GMT
"Jens-Uwe Mager" <jum@anubis.han.de> wrote:

>> Can't really tell from that. Anyone else know what threading library
>> Darwin uses?
> Darwin is a BSD kernel on top of MACH. The current implementation maps
> POSIX threads to MACH kernel threads in a one to one implementation. The
> implementation is not without flaws either, as for example there are
> problems with cancellation, signal handling (I believe) and process
> shared mutexes.

It seems to work all-right on my development box, I loaded Apache 2.0.32
with some 200/300 clients, and didn't observe any weirdness, but hey, I
wouldn't bet my salary on that :)

>>> On Darwin semget and semctl are there, but there is no SEM_UNDO, the
>>> pthread_mutexattr_setpshared (of course) is not there, but I'm wondering if
>>> there's another way to handle things without using files, which just is a
>>> kick in the **** :)
>> I dunno, don't have a darwin box. :)
> There is no real cross process locking that works without a system call
> in the non-congested case in Darwin. I did resort to using the spin
> locks from the historic MACH cthreads implementation which is still used
> in a lot of code from the standard libraries (both cthreads and pthreads
> map to the underlying MACH kernel threads one to one). Unfortunately
> they do not ship their cthread.h file they use to build the system, but
> I grabbed it from the Darwin CVS.

Wicked... Even less supported than sem_... :( One day when they'll be able
to send me my password for the CVS thinghie, I'll might be able to give it a
look :(


View raw message