nice for that would be some macros (somewhere in zend????) which help in
the following way (the ext_skel should generate the code, too):
a) define a global library identifier (for all blocks that should not run
at the same time)
zend_create_mutex(identifier)
b) use some code like:
zend_start_synchronized(identifier) {
...
...
} zend_end_synchronized(identifier);
(Same construct like zend_try). Without ZTS this macros should be empty...
As I am the developer of the NSAPI SAPI (which runs only with ZTS) I would
like to have a GD extension where alle PHP_FUNCTIONs exported from there
should have such Java-like "synchronized" blocks.
Uwe
At 00:10 21.10.2003, you wrote:
>If the library you are wrapping is not threadsafe, one approach is to
>simply not worry about it and just mark your extension as not being safe
>to use in a threaded environment. The majority of people use PHP in a
>non-threaded environment anyway.
>
>If you want to be nice to the folks who do use PHP in a threaded
>environment, you can look into adding a semaphore lock around the calls
>into the code that is not threadsafe. Such a semaphore lock makes sure
>that only 1 thread at a time can enter the code. Other threads sit around
>and wait until it is their turn.
>
>-Rasmus
>
>On Mon, 20 Oct 2003, netcat wrote:
>
> > Hi, internals.
> >
> > Please send me (post here i mean) a few links about
> > 1. thread safety in general
> > 2. thread saftey in php
> > 3. I'm doing wrapper for librep wich is not thread
> > safe (so mailing archives say). Do I need to know
> > something special ?
> >
> >
> > After doing some googling i found thise for #1
> > http://www.unix.org/version2/whatsnew/threads.html
> > http://www.unix.org/version2/whatsnew/threadsref.html
> > is that a good reading ?
> >
> > any better suggestions for google requests than thise :
> > c thread safety -mail -archive -lists
> > c thread safety tutor
> > ?
> >
> > I couldn't find anything for #2 but it's not less
> > important than #1 :)
> >
> >
> >
>
>--
>PHP Internals - PHP Runtime Development Mailing List
>To unsubscribe, visit: http://www.php.net/unsub.php
-----
Uwe Schindler
thetaphi@php.net - http://www.php.net
NSAPI SAPI developer
Erlangen, Germany