DescriptionReland of New task queueing primitive for async tasks: TaskQueue.
New task queueing primitive for async tasks: TaskQueue.
TaskQueue is a new way to asynchronously execute tasks sequentially
in a thread safe manner with minimal locking. The implementation
uses OS supported APIs to do this that are compatible with async IO
notifications from things like sockets and files.
This class is a part of rtc_base_approved, so can be used by both
the webrtc and libjingle parts of the WebRTC library. Moving forward,
we can replace rtc::Thread and webrtc::ProcessThread with this implementation.
NOTE: It should not be assumed that all tasks that execute on a TaskQueue,
run on the same thread. E.g. on Mac and iOS, we use GCD dispatch queues
which means that tasks might execute on different threads depending on
what's the most efficient thing to do.
TBR=perkj@webrtc.org,phoglund@webrtc.org
Committed: https://crrev.com/c06b133b2907ea67f2c1f23488a51e0de643e9ef
Cr-Commit-Position: refs/heads/master@{#12749}
Patch Set 1 #Patch Set 2 : Exclude nacl in GN for now due to 'config.h' issues in Chrome #Patch Set 3 : Turn off libevent if it's not available in the current build config #Patch Set 4 : Optional initialization for build_for #
Total comments: 3
Messages
Total messages: 28 (12 generated)
|