Chromium Code Reviews| Index: base/message_loop/message_pump_libevent_unittest.cc |
| diff --git a/base/message_loop/message_pump_libevent_unittest.cc b/base/message_loop/message_pump_libevent_unittest.cc |
| index 424621109aa6101053a486b61ad861c6c6480872..410b0849eb95c05e8832f9aad3b4f37d3c64e7cb 100644 |
| --- a/base/message_loop/message_pump_libevent_unittest.cc |
| +++ b/base/message_loop/message_pump_libevent_unittest.cc |
| @@ -246,7 +246,7 @@ TEST_F(MessagePumpLibeventTest, QuitWatcher) { |
| MessagePumpLibevent::FileDescriptorWatcher controller; |
| QuitWatcher delegate(&controller, &run_loop); |
| WaitableEvent event(false /* manual_reset */, false /* initially_signaled */); |
| - WaitableEventWatcher watcher; |
| + scoped_ptr<WaitableEventWatcher> watcher(new WaitableEventWatcher); |
| // Tell the pump to watch the pipe. |
| pump->WatchFileDescriptor(pipefds_[0], false, MessagePumpLibevent::WATCH_READ, |
| @@ -258,13 +258,18 @@ TEST_F(MessagePumpLibeventTest, QuitWatcher) { |
| Bind(&WriteFDWrapper, pipefds_[1], &buf, 1); |
| io_loop()->PostTask(FROM_HERE, |
| Bind(IgnoreResult(&WaitableEventWatcher::StartWatching), |
| - Unretained(&watcher), &event, write_fd_task)); |
| + Unretained(watcher.get()), &event, write_fd_task)); |
| // Queue |event| to signal on |loop|. |
| loop.PostTask(FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&event))); |
| // Now run the MessageLoop. |
| run_loop.Run(); |
| + |
| + // StartWatching can move |watcher| to IO thread. Release on IO thread. |
| + io_loop()->PostTask(FROM_HERE, Bind(&WaitableEventWatcher::StopWatching, |
| + Unretained(watcher.get()))); |
|
Chirantan Ekbote
2015/06/20 00:09:37
Why not just use base::Passed here?
derekjchow1
2015/06/20 00:34:07
I don't think we can Pass a scoped_ptr as the "thi
|
| + io_loop()->DeleteSoon(FROM_HERE, watcher.release()); |
| } |
| } // namespace |