| Index: ipc/ipc_sync_channel_unittest.cc
|
| diff --git a/ipc/ipc_sync_channel_unittest.cc b/ipc/ipc_sync_channel_unittest.cc
|
| index 4048825349c7392260cefbc931fbd1450ed7917a..79da618a9cc0e71c9486093016732acebe33e6ca 100644
|
| --- a/ipc/ipc_sync_channel_unittest.cc
|
| +++ b/ipc/ipc_sync_channel_unittest.cc
|
| @@ -42,28 +42,37 @@ class Worker : public Listener, public Sender {
|
| Worker(Channel::Mode mode,
|
| const std::string& thread_name,
|
| const std::string& channel_name)
|
| - : done_(new WaitableEvent(false, false)),
|
| - channel_created_(new WaitableEvent(false, false)),
|
| + : done_(
|
| + new WaitableEvent(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED)),
|
| + channel_created_(
|
| + new WaitableEvent(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED)),
|
| channel_name_(channel_name),
|
| mode_(mode),
|
| ipc_thread_((thread_name + "_ipc").c_str()),
|
| listener_thread_((thread_name + "_listener").c_str()),
|
| overrided_thread_(NULL),
|
| - shutdown_event_(true, false),
|
| + shutdown_event_(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED),
|
| is_shutdown_(false) {}
|
|
|
| // Will create a named channel and use this name for the threads' name.
|
| Worker(const std::string& channel_name, Channel::Mode mode)
|
| - : done_(new WaitableEvent(false, false)),
|
| - channel_created_(new WaitableEvent(false, false)),
|
| + : done_(
|
| + new WaitableEvent(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED)),
|
| + channel_created_(
|
| + new WaitableEvent(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED)),
|
| channel_name_(channel_name),
|
| mode_(mode),
|
| ipc_thread_((channel_name + "_ipc").c_str()),
|
| listener_thread_((channel_name + "_listener").c_str()),
|
| overrided_thread_(NULL),
|
| - shutdown_event_(true, false),
|
| - is_shutdown_(false) {
|
| - }
|
| + shutdown_event_(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED),
|
| + is_shutdown_(false) {}
|
|
|
| ~Worker() override {
|
| // Shutdown() must be called before destruction.
|
| @@ -86,7 +95,11 @@ class Worker : public Listener, public Sender {
|
| // The IPC thread needs to outlive SyncChannel. We can't do this in
|
| // ~Worker(), since that'll reset the vtable pointer (to Worker's), which
|
| // may result in a race conditions. See http://crbug.com/25841.
|
| - WaitableEvent listener_done(false, false), ipc_done(false, false);
|
| + WaitableEvent listener_done(
|
| + base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED),
|
| + ipc_done(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| ListenerThread()->task_runner()->PostTask(
|
| FROM_HERE, base::Bind(&Worker::OnListenerThreadShutdown1, this,
|
| &listener_done, &ipc_done));
|
| @@ -454,7 +467,9 @@ class NoHangClient : public Worker {
|
| };
|
|
|
| void NoHang(bool pump_during_send) {
|
| - WaitableEvent got_first_reply(false, false);
|
| + WaitableEvent got_first_reply(
|
| + base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| std::vector<Worker*> workers;
|
| workers.push_back(
|
| new NoHangServer(&got_first_reply, pump_during_send, "NoHang"));
|
| @@ -730,8 +745,12 @@ void Multiple(bool server_pump, bool client_pump) {
|
| // Server1 sends a sync msg to client1, which blocks the reply until
|
| // server2 (which runs on the same worker thread as server1) responds
|
| // to a sync msg from client2.
|
| - WaitableEvent client1_msg_received(false, false);
|
| - WaitableEvent client1_can_reply(false, false);
|
| + WaitableEvent client1_msg_received(
|
| + base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent client1_can_reply(
|
| + base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
|
|
| Worker* worker;
|
|
|
| @@ -1255,8 +1274,11 @@ class RestrictedDispatchClient : public Worker {
|
| };
|
|
|
| TEST_F(IPCSyncChannelTest, RestrictedDispatch) {
|
| - WaitableEvent sent_ping_event(false, false);
|
| - WaitableEvent wait_event(false, false);
|
| + WaitableEvent sent_ping_event(
|
| + base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent wait_event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| RestrictedDispatchServer* server =
|
| new RestrictedDispatchServer(&sent_ping_event, &wait_event);
|
| NonRestrictedDispatchServer* server2 =
|
| @@ -1486,13 +1508,19 @@ TEST_F(IPCSyncChannelTest, RestrictedDispatchDeadlock) {
|
| base::Thread worker_thread("RestrictedDispatchDeadlock");
|
| ASSERT_TRUE(worker_thread.Start());
|
|
|
| - WaitableEvent server1_ready(false, false);
|
| - WaitableEvent server2_ready(false, false);
|
| -
|
| - WaitableEvent event0(false, false);
|
| - WaitableEvent event1(false, false);
|
| - WaitableEvent event2(false, false);
|
| - WaitableEvent event3(false, false);
|
| + WaitableEvent server1_ready(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent server2_ready(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| +
|
| + WaitableEvent event0(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent event1(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent event2(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent event3(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| WaitableEvent* events[4] = {&event0, &event1, &event2, &event3};
|
|
|
| RestrictedDispatchDeadlockServer* server1;
|
| @@ -1616,10 +1644,14 @@ class RestrictedDispatchPipeWorker : public Worker {
|
| TEST_F(IPCSyncChannelTest, MAYBE_RestrictedDispatch4WayDeadlock) {
|
| int success = 0;
|
| std::vector<Worker*> workers;
|
| - WaitableEvent event0(true, false);
|
| - WaitableEvent event1(true, false);
|
| - WaitableEvent event2(true, false);
|
| - WaitableEvent event3(true, false);
|
| + WaitableEvent event0(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent event1(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent event2(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| + WaitableEvent event3(base::WaitableEvent::ResetPolicy::MANUAL,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| workers.push_back(new RestrictedDispatchPipeWorker(
|
| "channel0", &event0, "channel1", &event1, 1, &success));
|
| workers.push_back(new RestrictedDispatchPipeWorker(
|
| @@ -1734,7 +1766,8 @@ class ReentrantReplyClient : public Worker {
|
|
|
| TEST_F(IPCSyncChannelTest, ReentrantReply) {
|
| std::vector<Worker*> workers;
|
| - WaitableEvent server_ready(false, false);
|
| + WaitableEvent server_ready(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| + base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| workers.push_back(new ReentrantReplyServer2());
|
| workers.push_back(new ReentrantReplyServer1(&server_ready));
|
| workers.push_back(new ReentrantReplyClient(&server_ready));
|
|
|