/** * Create a new thread if $threadId is not already running * * @param string $threadId * @return X_Threads_Thread_Info|X_Threads_Thread */ public function newThread($threadId) { $thread = $this->getMonitor()->getThread($threadId); if ($thread->getState() == X_Threads_Thread_Info::STOPPED) { // create a new thread and return it $thread = new X_Threads_Thread($threadId, $this); if (!$this->isLogger()) { $thread->setLogger(new X_Threads_Logger_Null()); } else { $thread->setLogger(new X_Threads_Logger_File("vlcShares.thread-{$threadId}.log", X_Debug::getLogPath())); // redirect standard debug too if enabled if (X_Debug::isEnabled()) { X_Debug::i("Forking debug log to {" . X_Debug::getLogPath() . "/vlcShares.thread-{$threadId}.log"); X_Debug::init(X_Debug::getLogPath() . "/vlcShares.thread-{$threadId}.log", X_Debug::getLevel()); } } } return $thread; }