MCPcopy
hub / github.com/wavetermdev/waveterm / RecvData

Method RecvData

pkg/streamclient/streambroker.go:122–124  ·  view source on GitHub ↗

RecvData and RecvAck are designed to be non-blocking and must remain so to prevent deadlock. They only enqueue work items to be processed asynchronously by the work queue's goroutine. These methods are called from the main RPC runServer loop, so blocking here would stall all RPC processing.

(dataPk wshrpc.CommandStreamData)

Source from the content-addressed store, hash-verified

120// They only enqueue work items to be processed asynchronously by the work queue's goroutine.
121// These methods are called from the main RPC runServer loop, so blocking here would stall all RPC processing.
122func (b *Broker) RecvData(dataPk wshrpc.CommandStreamData) {
123 b.recvQueue.Enqueue(workItem{workType: "recvdata", dataPk: dataPk})
124}
125
126func (b *Broker) RecvAck(ackPk wshrpc.CommandStreamAckData) {
127 b.recvQueue.Enqueue(workItem{workType: "recvack", ackPk: ackPk})

Callers 2

setupBrokerPairFunction · 0.95
processRecvDataMethod · 0.45

Calls 1

EnqueueMethod · 0.80

Tested by 1

setupBrokerPairFunction · 0.76