void CsoundPerformanceThread::csPerfThread_constructor(CSOUND *csound_) { csound = csound_; firstMessage = (CsoundPerformanceThreadMessage*) 0; lastMessage = (CsoundPerformanceThreadMessage*) 0; queueLock = (void*) 0; pauseLock = (void*) 0; flushLock = (void*) 0; perfThread = (void*) 0; paused = 1; status = CSOUND_MEMORY; cdata = 0; processcallback = 0; running = 0; queueLock = csoundCreateMutex(0); if (!queueLock) return; pauseLock = csoundCreateThreadLock(); if (!pauseLock) return; flushLock = csoundCreateThreadLock(); if (!flushLock) return; try { lastMessage = new CsPerfThreadMsg_Pause(this); } catch (std::bad_alloc&) { return; } firstMessage = lastMessage; perfThread = csoundCreateThread(csoundPerformanceThread_, (void*) this); if (perfThread) status = 0; }
void CsoundPerformanceThread::csPerfThread_constructor(CSOUND *csound_) { csound = csound_; firstMessage = (CsoundPerformanceThreadMessage*) 0; lastMessage = (CsoundPerformanceThreadMessage*) 0; queueLock = (void*) 0; pauseLock = (void*) 0; flushLock = (void*) 0; recordLock = (void *) 0; perfThread = (void*) 0; paused = 1; status = CSOUND_MEMORY; cdata = 0; processcallback = 0; running = 0; queueLock = csoundCreateMutex(0); if (!queueLock) return; pauseLock = csoundCreateThreadLock(); if (!pauseLock) return; flushLock = csoundCreateThreadLock(); if (!flushLock) return; recordLock = csoundCreateMutex(0); if (!recordLock) return; try { lastMessage = new CsPerfThreadMsg_Pause(this); } catch (std::bad_alloc&) { return; } firstMessage = lastMessage; recordData.cbuf = NULL; recordData.sfile = NULL; recordData.thread = NULL; recordData.running = false; pthread_mutex_init(&recordData.mutex, NULL); pthread_cond_init(&recordData.condvar, NULL); perfThread = csoundCreateThread(csoundPerformanceThread_, (void*) this); if (perfThread) status = 0; }