//Setup camera to stream. Spawn a thread to display stats. void HandleCameraPlugged(unsigned long UniqueId) { if(!GCamera.UID && !GCamera.Abort) { GCamera.UID = UniqueId; if(CameraSetup()) { printf("Camera %lu opened\n",UniqueId); // start streaming from the camera if(CameraStart()) { //create a thread to display camera stats. SpawnThread(); } else { //failure. signal main thread to abort GCamera.Abort = true; } } else { //failure. signal main thread to abort GCamera.Abort = true; } } }
Terminator::Terminator() { static std::atomic_flag created = ATOMIC_FLAG_INIT; if (created.test_and_set()) { throw std::runtime_error("Terminator may be crated exactly once."); } std::atomic_init(&this->should_terminate_, false); signal_handler_ = SpawnThread(this); }
void AsTickManager::StartTimer() { if(mTickLoopThread == 0) { mTickLoopThread = SpawnThread(); mTimer->Start(); } }
void AsTickTimer::Start() { mShouldKeepTicking = true; mPause = false; if(mThread == 0) { mThread = SpawnThread(); } }
void CThread::Create(bool bAutoDelete, unsigned stacksize) { if (m_ThreadId != 0) { LOG(LOGERROR, "%s - fatal error creating thread- old thread id not null", __FUNCTION__); exit(1); } m_iLastTime = XbmcThreads::SystemClockMillis() * 10000; m_iLastUsage = 0; m_fLastUsage = 0.0f; m_bAutoDelete = bAutoDelete; m_bStop = false; m_StopEvent.Reset(); m_TermEvent.Reset(); m_StartEvent.Reset(); SpawnThread(stacksize); }
void FindWindow::MessageReceived(BMessage *msg) { BMenuItem *item = NULL; switch (msg->what) { case M_FIND: { SpawnThread(THREAD_FIND); break; } case M_REPLACE: { SpawnThread(THREAD_REPLACE); break; } case M_REPLACE_ALL: { SpawnThread(THREAD_REPLACE_ALL); break; } case M_SHOW_RESULT: { GrepListItem *item = dynamic_cast<GrepListItem*>(fResultList->ItemAt( fResultList->CurrentSelection())); if (item) { BMessage refMessage(B_REFS_RECEIVED); entry_ref fileref = item->GetRef(); refMessage.AddRef("refs",&fileref); int32 line = item->GetLine(); if (line >= 0) refMessage.AddInt32("be:line",line); STRACE(2,("Paladin FindWindow Launching File Ref: %s:%i",fileref.name,line)); be_roster->Launch(&fileref,&refMessage); } break; } case M_TOGGLE_REGEX: { fIsRegEx = !fIsRegEx; item = fMenuBar->FindItem(B_TRANSLATE("Regular expression")); item->SetMarked(fIsRegEx); break; } case M_TOGGLE_CASE_INSENSITIVE: { fIgnoreCase = !fIgnoreCase; item = fMenuBar->FindItem(B_TRANSLATE("Ignore case")); item->SetMarked(fIgnoreCase); break; } case M_TOGGLE_MATCH_WORD: { fMatchWord = !fMatchWord; item = fMenuBar->FindItem(B_TRANSLATE("Match whole word")); item->SetMarked(fMatchWord); break; } case M_FIND_CHANGED: { if (fFindBox->Text() && strlen(fFindBox->Text()) > 0) fFindButton->SetEnabled(true); else fFindButton->SetEnabled(false); break; } case M_REPLACE_CHANGED: { if (fReplaceBox->Text() && strlen(fReplaceBox->Text()) > 0) ; // only enabled after Find used else EnableReplace(false); break; } case M_SET_PROJECT: { Project *proj; if (msg->FindPointer("project", (void**)&proj) != B_OK) break; break; } default: { DWindow::MessageReceived(msg); break; } } }
int spawnThread(void (*f)(), int p) { if(useDefault) return SpawnThread(f,p); else return MySpawnThread(f,p); }