Added MemoryManager object watcher for object leak debugging, improved SPL Thread/Worker stopping, fixed some possible weak references crashing unexpectedly

This commit is contained in:
Shoghi Cervantes
2015-05-09 16:10:03 +02:00
parent 7e539ec85a
commit 1a1b8830a4
10 changed files with 158 additions and 30 deletions

View File

@ -459,8 +459,9 @@ class PluginManager{
$subs = [];
foreach($this->permSubs[$permission] as $k => $perm){
/** @var \WeakRef $perm */
if($perm->valid()){
if($perm->acquire()){
$subs[] = $perm->get();
$perm->release();
}else{
unset($this->permSubs[$permission][$k]);
}
@ -507,8 +508,9 @@ class PluginManager{
if($op === true){
foreach($this->defSubsOp as $k => $perm){
/** @var \WeakRef $perm */
if($perm->valid()){
if($perm->acquire()){
$subs[] = $perm->get();
$perm->release();
}else{
unset($this->defSubsOp[$k]);
}
@ -516,8 +518,9 @@ class PluginManager{
}else{
foreach($this->defSubs as $k => $perm){
/** @var \WeakRef $perm */
if($perm->valid()){
if($perm->acquire()){
$subs[] = $perm->get();
$perm->release();
}else{
unset($this->defSubs[$k]);
}