Req #70753 [Opn->Sus]: Default value of sem_get()'s parameter auto_release
| From: | cmb@php.net | Date: | Mon, 16 Nov 2020 16:51:24 +0000 |
| Subject: | Req #70753 [Opn->Sus]: Default value of sem_get()'s parameter auto_release | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-230394@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=70753&edit=1
ID: 70753
Updated by: cmb@php.net
Reported by: kakkau at grr dot la
Summary: Default value of sem_get()'s parameter auto_release
-Status: Open
+Status: Suspended
Type: Feature/Change Request
Package: Semaphore related
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
Changing a default value of a function can cause a serious BC
break. As such this request needs to be discussed on the
internals mailing list. Please forward your request. For the
time being, I'm suspending this ticket.
Previous Comments:
------------------------------------------------------------------------
[2015-10-20 21:59:04] kakkau at grr dot la
Description:
------------
Set the default value for sem_get()'s parameter auto_release to 0 as 1 allows additional
acquisition of semaphores when reassigning semaphore resource identifiers although the semaphore was
not released yet.
Test script:
---------------
<?php
class Sem {
private $key = null;
private $res = null;
public function __construct() {
$this->key = ftok(".",".");
$this->set_res();
$this->acquire();
}
public function set_res() {
// 4th parameter auto_released is 1 by default
$this->res = sem_get($this->key, 1, 0600, 1);
}
public function acquire() {
echo "acquired='".sem_acquire($this->res,true)."'\n";
}
}
$s = new Sem();
$s->set_res();
$s->acquire();
// NOTE: it allows additional acquisition for simple resource variables too
?>
Expected result:
----------------
acquired='1'
acquired=''
Actual result:
--------------
acquired='1'
acquired='1'
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=70753&edit=1