MCPcopy Create free account
hub / github.com/bytedance/bolt / enqueueBroadcastOutputLocked

Method enqueueBroadcastOutputLocked

bolt/exec/OutputBuffer.cpp:474–494  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

472}
473
474void OutputBuffer::enqueueBroadcastOutputLocked(
475 std::unique_ptr<SerializedPage> data,
476 std::vector<DataAvailable>& dataAvailableCbs) {
477 BOLT_DCHECK(isBroadcast());
478 BOLT_CHECK_NULL(arbitraryBuffer_);
479 BOLT_DCHECK(dataAvailableCbs.empty());
480
481 std::shared_ptr<SerializedPage> sharedData(data.release());
482 for (auto& buffer : buffers_) {
483 if (buffer != nullptr) {
484 buffer->enqueue(sharedData);
485 dataAvailableCbs.emplace_back(buffer->getAndClearNotify());
486 }
487 }
488
489 // NOTE: we don't need to add new buffer to 'dataToBroadcast_' if there is no
490 // more output buffers.
491 if (!noMoreBuffers_) {
492 dataToBroadcast_.emplace_back(sharedData);
493 }
494}
495
496void OutputBuffer::enqueueArbitraryOutputLocked(
497 std::unique_ptr<SerializedPage> data,

Callers

nothing calls this directly

Calls 4

getAndClearNotifyMethod · 0.80
emptyMethod · 0.45
releaseMethod · 0.45
enqueueMethod · 0.45

Tested by

no test coverage detected