MCPcopy Create free account
hub / github.com/anyrtcIO-Community/anyRTC-RTMP-OpenSource / PostTaskAndReply

Method PostTaskAndReply

webrtc/base/task_queue_win.cc:110–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108}
109
110void TaskQueue::PostTaskAndReply(std::unique_ptr<QueuedTask> task,
111 std::unique_ptr<QueuedTask> reply,
112 TaskQueue* reply_queue) {
113 QueuedTask* task_ptr = task.release();
114 QueuedTask* reply_task_ptr = reply.release();
115 DWORD reply_thread_id = reply_queue->thread_.GetThreadRef();
116 PostTask([task_ptr, reply_task_ptr, reply_thread_id]() {
117 if (task_ptr->Run())
118 delete task_ptr;
119 // If the thread's message queue is full, we can't queue the task and will
120 // have to drop it (i.e. delete).
121 if (!PostThreadMessage(reply_thread_id, WM_RUN_TASK, 0,
122 reinterpret_cast<LPARAM>(reply_task_ptr))) {
123 delete reply_task_ptr;
124 }
125 });
126}
127
128void TaskQueue::PostTaskAndReply(std::unique_ptr<QueuedTask> task,
129 std::unique_ptr<QueuedTask> reply) {

Callers

nothing calls this directly

Calls 5

PostTaskFunction · 0.85
PostTaskAndReplyFunction · 0.85
GetThreadRefMethod · 0.80
releaseMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected