mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
Verify posting task and reply just before task queue destruction
Bug: webrtc:9728 Change-Id: I516311a507b4e9f49c45fda5185e96d4248ed455 Reviewed-on: https://webrtc-review.googlesource.com/98520 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24639}
This commit is contained in:
parent
1fdcfa755e
commit
2903888cde
1 changed files with 26 additions and 0 deletions
|
@ -371,6 +371,32 @@ TEST(TaskQueueTest, PostAndReplyDeadlock) {
|
||||||
EXPECT_TRUE(event.Wait(1000));
|
EXPECT_TRUE(event.Wait(1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// http://bugs.webrtc.org/9728
|
||||||
|
#if defined(WEBRTC_WIN)
|
||||||
|
#define MAYBE_DeleteTaskQueueAfterPostAndReply \
|
||||||
|
DISABLED_DeleteTaskQueueAfterPostAndReply
|
||||||
|
#else
|
||||||
|
#define MAYBE_DeleteTaskQueueAfterPostAndReply DeleteTaskQueueAfterPostAndReply
|
||||||
|
#endif
|
||||||
|
TEST(TaskQueueTest, MAYBE_DeleteTaskQueueAfterPostAndReply) {
|
||||||
|
Event task_deleted(false, false);
|
||||||
|
Event reply_deleted(false, false);
|
||||||
|
auto* task_queue = new TaskQueue("Queue");
|
||||||
|
|
||||||
|
task_queue->PostTaskAndReply(
|
||||||
|
/*task=*/rtc::NewClosure(
|
||||||
|
/*closure=*/[] {},
|
||||||
|
/*cleanup=*/[&task_deleted] { task_deleted.Set(); }),
|
||||||
|
/*reply=*/rtc::NewClosure(
|
||||||
|
/*closure=*/[] {},
|
||||||
|
/*cleanup=*/[&reply_deleted] { reply_deleted.Set(); }));
|
||||||
|
|
||||||
|
delete task_queue;
|
||||||
|
|
||||||
|
EXPECT_TRUE(task_deleted.Wait(1000));
|
||||||
|
EXPECT_TRUE(reply_deleted.Wait(1000));
|
||||||
|
}
|
||||||
|
|
||||||
void TestPostTaskAndReply(TaskQueue* work_queue, Event* event) {
|
void TestPostTaskAndReply(TaskQueue* work_queue, Event* event) {
|
||||||
ASSERT_FALSE(work_queue->IsCurrent());
|
ASSERT_FALSE(work_queue->IsCurrent());
|
||||||
work_queue->PostTaskAndReply(Bind(&CheckCurrent, nullptr, work_queue),
|
work_queue->PostTaskAndReply(Bind(&CheckCurrent, nullptr, work_queue),
|
||||||
|
|
Loading…
Reference in a new issue