| 628 | // ---------------------------------------------------------------------------- |
| 629 | |
| 630 | void CsoundPerformanceThread::QueueMessage(CsoundPerformanceThreadMessage *msg) |
| 631 | { |
| 632 | if (status) { |
| 633 | delete msg; |
| 634 | return; |
| 635 | } |
| 636 | csoundLockMutex(queueLock); |
| 637 | // link message into FIFO |
| 638 | if (!lastMessage) |
| 639 | firstMessage = msg; |
| 640 | else |
| 641 | lastMessage->nxt = msg; |
| 642 | lastMessage = msg; |
| 643 | // mark queue as non-empty |
| 644 | csoundWaitThreadLock(flushLock, (size_t) 0); |
| 645 | // wake up from pause |
| 646 | csoundNotifyThreadLock(pauseLock); |
| 647 | csoundUnlockMutex(queueLock); |
| 648 | } |
| 649 | |
| 650 | void CsoundPerformanceThread::Play() |
| 651 | { |
no test coverage detected