Bug #16986 Updated: semaphore autorelease can be a bug....
| From: | michel at ziobudda dot net | Date: | Mon, 06 May 2002 14:44:30 +0000 |
| Subject: | Bug #16986 Updated: semaphore autorelease can be a bug.... | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-7047@lists.php.net to get a copy of this message | ||
ID: 16986
Updated by: michel@ziobudda.net
Reported By: AlberT@SuperAlberT.it
Status: Open
Bug Type: Semaphore related
Operating System: Linux 2.4.18
PHP Version: 4.1.2
New Comment:
Hi, I'm the coordinator of Italian Linux Portal and just last saturday
(04/05/2002 in european date) I have talked about PHP in a Linux Event.
I think that the rigth "position" is the position of AlberT: If a
script die and it "has" the semaphore is corret that another scripts
can get that semaphore.
my 0,02euro
Previous Comments:
------------------------------------------------------------------------
[2002-05-06 10:23:00] AlberT@SuperAlberT.it
It cause deadlock, but only on the script... if you test your script
and have a deadlock, you fix it and release the sem you forgot.
I think the auto release may be a good DEFAULT, but it is important to
be able to modify this behaviour.
If you want to fulfill any classical IPC problem (see Tanenbuam!)
You have to be able to acquire a sem, and not to realease it.
Here you ca nfind an explanation of the problems one can have and that
auto release make impossible to solve:
http://joda.cis.temple.edu/~ingargio/old/cis307f95/readings/readwriters.html
------------------------------------------------------------------------
[2002-05-03 06:47:10] wez@php.net
But a process that acquires a semaphore and then exits will
case deadlocks, because no one else can acquire the semaphore??
Can you give a good example of where leaving the semaphore acquired is
actually useful?
------------------------------------------------------------------------
[2002-05-03 05:37:33] AlberT@SuperAlberT.it
sem_acquire() function has this behavior:
After processing a request, any semaphores acquired by the process but
not explicitly released will be released automatically and a warning
will be generated.
This is not a great thing, infact in this way the readers/writers
classical IPC problem, with writers precedence is impossible to
implement !!!
I think an option to disable autorelease is usefull.
(I sent a feature/change request, but I had no feadback :-( )
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=16986&edit=1