Clean up Thread/Worker quit()

This commit is contained in:
Dylan K. Taylor
2018-07-26 14:17:01 +01:00
parent 695793795e
commit c684f99cc4
2 changed files with 4 additions and 13 deletions

View File

@ -83,13 +83,10 @@ abstract class Thread extends \Thread{
public function quit(){ public function quit(){
$this->isKilled = true; $this->isKilled = true;
$this->notify();
if(!$this->isJoined()){ if(!$this->isJoined()){
if(!$this->isTerminated()){ $this->notify();
$this->join(); $this->join();
} }
}
ThreadManager::getInstance()->remove($this); ThreadManager::getInstance()->remove($this);
} }

View File

@ -83,16 +83,10 @@ abstract class Worker extends \Worker{
public function quit(){ public function quit(){
$this->isKilled = true; $this->isKilled = true;
$this->notify();
if($this->isRunning()){ if($this->isRunning()){
$this->shutdown(); while($this->unstack() !== null);
$this->notify(); $this->notify();
$this->unstack(); $this->shutdown();
}elseif(!$this->isJoined()){
if(!$this->isTerminated()){
$this->join();
}
} }
ThreadManager::getInstance()->remove($this); ThreadManager::getInstance()->remove($this);