diff options
Diffstat (limited to 'www/pecl-APC-devel/files/patch-apc_sem.c')
-rw-r--r-- | www/pecl-APC-devel/files/patch-apc_sem.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/www/pecl-APC-devel/files/patch-apc_sem.c b/www/pecl-APC-devel/files/patch-apc_sem.c deleted file mode 100644 index d83ba6d5a51f..000000000000 --- a/www/pecl-APC-devel/files/patch-apc_sem.c +++ /dev/null @@ -1,35 +0,0 @@ -# -# Fix http://pecl.php.net/bugs/bug.php?id=5280 -# ---- apc_sem.c.orig 2008-01-25 00:32:24.000000000 -0200 -+++ apc_sem.c 2008-01-25 00:35:28.000000000 -0200 -@@ -82,12 +82,16 @@ - } - } - -- if ((semid = semget(key, 1, IPC_CREAT | IPC_EXCL | perms)) >= 0) { -+ if ((semid = semget(key, 2, IPC_CREAT | IPC_EXCL | perms)) >= 0) { - /* sempahore created for the first time, initialize now */ - arg.val = initval; - if (semctl(semid, 0, SETVAL, arg) < 0) { - apc_eprint("apc_sem_create: semctl(%d,...) failed:", semid); - } -+ arg.val = getpid(); -+ if (semctl(semid, 1, SETVAL, arg) < 0) { -+ apc_eprint("apc_sem_create: semctl(%d,...) failed:", semid); -+ } - } - else if (errno == EEXIST) { - /* sempahore already exists, don't initialize */ -@@ -107,7 +111,10 @@ - { - /* we expect this call to fail often, so we do not check */ - union semun arg; -- semctl(semid, 0, IPC_RMID, arg); -+ int semPid = semctl(semid, 1, GETVAL, 0); -+ if (semPid == getpid()) { -+ semctl(semid, 0, IPC_RMID, arg); -+ } - } - - void apc_sem_lock(int semid) |