dawn-cmake/src/dawn_platform
Jiawei Shao 5d39860fef Implement AsyncWaitableEvent with std::condition_variable
This patch implements the default implementation of WaitableEvent
(AsyncWaitableEvent) with std::condition_variable instead of
std::future as std::future will always block its destructor until
the async function returns, which makes us unable to clean up all
the execution environment of the async task inside the async
function.

This patch also implements WorkerThreadTaskManager to manage all
the async tasks (inherited from WorkerThreadTask) in the future,
for example all the Create*PipelineAsync() tasks.

This patch also updates the related dawn_unittest WorkerThreadTest.
Basic.

BUG=dawn:529
TEST=dawn_unittests

Change-Id: Ie789ba788789e91128ffc416e7e768923828a367
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-05-27 00:49:03 +00:00
..
tracing Make dawn_platform a component. 2020-11-06 09:02:30 +00:00
BUILD.gn Implement WaitableEvent and WorkerTaskPool for multi-threaded tasks 2021-01-20 08:56:07 +00:00
CMakeLists.txt Implement WaitableEvent and WorkerTaskPool for multi-threaded tasks 2021-01-20 08:56:07 +00:00
DawnPlatform.cpp Implement WaitableEvent and WorkerTaskPool for multi-threaded tasks 2021-01-20 08:56:07 +00:00
WorkerThread.cpp Implement AsyncWaitableEvent with std::condition_variable 2021-05-27 00:49:03 +00:00
WorkerThread.h Implement AsyncWaitableEvent with std::condition_variable 2021-05-27 00:49:03 +00:00