Index: ipc/ipc_sync_message_filter.cc |
diff --git a/ipc/ipc_sync_message_filter.cc b/ipc/ipc_sync_message_filter.cc |
index 1a6f6d9255a723d2a98bb938e3d0331d2e7885d9..73e905833ed34f675d35e355affd63c2cdef30b4 100644 |
--- a/ipc/ipc_sync_message_filter.cc |
+++ b/ipc/ipc_sync_message_filter.cc |
@@ -59,7 +59,10 @@ bool SyncMessageFilter::Send(Message* message) { |
} |
base::WaitableEvent* events[2] = { shutdown_event_, &done_event }; |
- base::WaitableEvent::WaitMany(events, 2); |
+ if (base::WaitableEvent::WaitMany(events, 2) == 1) { |
+ TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), |
+ "SyncMessageFilter::Send", &done_event); |
+ } |
{ |
base::AutoLock auto_lock(lock_); |
@@ -103,6 +106,9 @@ bool SyncMessageFilter::OnMessageReceived(const Message& message) { |
(*iter)->send_result = |
(*iter)->deserializer->SerializeOutputParameters(message); |
} |
+ TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), |
+ "SyncMessageFilter::OnMessageReceived", |
+ (*iter)->done_event); |
(*iter)->done_event->Signal(); |
return true; |
} |
@@ -142,6 +148,9 @@ void SyncMessageFilter::SignalAllEvents() { |
lock_.AssertAcquired(); |
for (PendingSyncMessages::iterator iter = pending_sync_messages_.begin(); |
iter != pending_sync_messages_.end(); ++iter) { |
+ TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("ipc.flow"), |
+ "SyncMessageFilter::SignalAllEvents", |
+ (*iter)->done_event); |
(*iter)->done_event->Signal(); |
} |
} |