MCPcopy Create free account
hub / github.com/VCVRack/Rack / tryPop

Method tryPop

src/midi.cpp:330–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

328}
329
330bool InputQueue::tryPop(Message* messageOut, int64_t maxFrame) {
331 // Check if queue is empty before locking, to avoid frequent unnecessary locking
332 if (internal->queue.empty())
333 return false;
334
335 std::lock_guard<std::mutex> lock(internal->mutex);
336
337 if (internal->queue.empty())
338 return false;
339
340 const SeqMessage& s = internal->queue.top();
341 if (s.message.getFrame() <= maxFrame) {
342 *messageOut = s.message;
343 internal->queue.pop();
344 return true;
345 }
346
347 return false;
348}
349
350size_t InputQueue::size() {
351 return internal->queue.size();

Callers 4

processMethod · 0.80
processMethod · 0.80
processMethod · 0.80
processMethod · 0.80

Calls 2

emptyMethod · 0.45
getFrameMethod · 0.45

Tested by

no test coverage detected