Index: ipc/ipc_sync_channel.cc |
=================================================================== |
--- ipc/ipc_sync_channel.cc (revision 179992) |
+++ ipc/ipc_sync_channel.cc (working copy) |
@@ -234,8 +234,6 @@ |
received_sync_msgs_(ReceivedSyncMsgQueue::AddContext()), |
shutdown_event_(shutdown_event), |
restrict_dispatch_group_(kRestrictDispatchGroup_None) { |
- shutdown_watcher_callback_ = base::Bind( |
- &SyncChannel::SyncContext::OnWaitableEventSignaled, this); |
} |
SyncChannel::SyncContext::~SyncContext() { |
@@ -355,7 +353,7 @@ |
} |
void SyncChannel::SyncContext::OnChannelOpened() { |
- shutdown_watcher_.StartWatching(shutdown_event_, shutdown_watcher_callback_); |
+ shutdown_watcher_.StartWatching(shutdown_event_, this); |
Context::OnChannelOpened(); |
} |
@@ -519,22 +517,21 @@ |
base::WaitableEventWatcher* old_send_done_event_watcher = |
sync_msg_queue->top_send_done_watcher(); |
- base::WaitableEventWatcher::EventCallback old_callback; |
+ base::WaitableEventWatcher::Delegate* old_delegate = NULL; |
base::WaitableEvent* old_event = NULL; |
// Maintain a local global stack of send done delegates to ensure that |
// nested sync calls complete in the correct sequence, i.e. the |
// outermost call completes first, etc. |
if (old_send_done_event_watcher) { |
- old_callback = old_send_done_event_watcher->callback(); |
+ old_delegate = old_send_done_event_watcher->delegate(); |
old_event = old_send_done_event_watcher->GetWatchedEvent(); |
old_send_done_event_watcher->StopWatching(); |
} |
sync_msg_queue->set_top_send_done_watcher(&send_done_watcher); |
- send_done_watcher.StartWatching(context->GetSendDoneEvent(), |
- context->shutdown_watcher_callback()); |
+ send_done_watcher.StartWatching(context->GetSendDoneEvent(), context); |
{ |
MessageLoop::ScopedNestableTaskAllower allow(MessageLoop::current()); |
@@ -543,7 +540,7 @@ |
sync_msg_queue->set_top_send_done_watcher(old_send_done_event_watcher); |
if (old_send_done_event_watcher && old_event) { |
- old_send_done_event_watcher->StartWatching(old_event, old_callback); |
+ old_send_done_event_watcher->StartWatching(old_event, old_delegate); |
} |
} |
@@ -552,7 +549,7 @@ |
// The call to DispatchMessages might delete this object, so reregister |
// the object watcher first. |
event->Reset(); |
- dispatch_watcher_.StartWatching(event, dispatch_watcher_callback_); |
+ dispatch_watcher_.StartWatching(event, this); |
sync_context()->DispatchMessages(); |
} |
@@ -563,11 +560,7 @@ |
// stop or keep watching. So we always watch it, and create the event as |
// manual reset since the object watcher might otherwise reset the event |
// when we're doing a WaitMany. |
- dispatch_watcher_callback_ = |
- base::Bind(&SyncChannel::OnWaitableEventSignaled, |
- base::Unretained(this)); |
- dispatch_watcher_.StartWatching(sync_context()->GetDispatchEvent(), |
- dispatch_watcher_callback_); |
+ dispatch_watcher_.StartWatching(sync_context()->GetDispatchEvent(), this); |
} |
} // namespace IPC |