MCPcopy Create free account
hub / github.com/cocos/cocos-engine / terminateConsumerThread

Method terminateConsumerThread

native/cocos/base/threading/MessageQueue.cpp:150–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148}
149
150void MessageQueue::terminateConsumerThread() noexcept {
151 if (_immediateMode || !_workerAttached) return;
152
153 EventSem event;
154 EventSem *const pEvent = &event;
155
156 ReaderContext *const pR = &_reader;
157
158 ccnew_placement(allocate<TerminateConsumerThreadMessage>(1)) TerminateConsumerThreadMessage(pEvent, pR);
159
160 kick();
161 event.wait();
162
163 if (_consumerThread != nullptr) {
164 if (_consumerThread->joinable()) {
165 _consumerThread->join();
166 }
167 }
168 CC_SAFE_DELETE(_consumerThread);
169}
170
171void MessageQueue::finishWriting() noexcept {
172 if (!_immediateMode) {

Callers 2

doDestroyMethod · 0.80
setMultithreadedMethod · 0.80

Calls 3

joinMethod · 0.80
waitMethod · 0.45

Tested by

no test coverage detected