Req #70753 [Opn->Sus]: Default value of sem_get()'s parameter auto_release

From: 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

« previous php.bugs (#230394) next »