Autorelease callback.

This commit is contained in:
resurtm
2013-06-25 07:24:57 +06:00
parent 90227bd344
commit 33adfcea91

View File

@ -34,10 +34,11 @@ abstract class Mutex extends Component
{ {
if ($this->autoRelease) { if ($this->autoRelease) {
$referenceHolder = new stdClass(); $referenceHolder = new stdClass();
$referenceHolder->mutex = &$this;
$referenceHolder->locks = &$this->_locks; $referenceHolder->locks = &$this->_locks;
register_shutdown_function(function ($ref) { register_shutdown_function(function ($ref) {
foreach ($ref->locks as $lock) { foreach ($ref->locks as $lock) {
$this->release($lock); $ref->mutex->release($lock);
} }
}, $referenceHolder); }, $referenceHolder);
} }