Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Unified Diff: mojo/message_pump/handle_watcher.cc

Issue 1358163006: Adds some code to help isolate where crash is happening (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/message_pump/handle_watcher.h ('k') | mojo/message_pump/handle_watcher_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/message_pump/handle_watcher.cc
diff --git a/mojo/message_pump/handle_watcher.cc b/mojo/message_pump/handle_watcher.cc
index 964f1e2d3348d80b1edef376538ce2eac0862639..146c6f2f4700d70f813438f7a31e83399d04ac96 100644
--- a/mojo/message_pump/handle_watcher.cc
+++ b/mojo/message_pump/handle_watcher.cc
@@ -42,8 +42,12 @@ base::TimeTicks MojoDeadlineToTimeTicks(MojoDeadline deadline) {
// Tracks the data for a single call to Start().
struct WatchData {
WatchData()
- : id(0), handle_signals(MOJO_HANDLE_SIGNAL_NONE), task_runner(NULL) {}
+ : location(0),
+ id(0),
+ handle_signals(MOJO_HANDLE_SIGNAL_NONE),
+ task_runner(NULL) {}
+ int location;
WatcherID id;
Handle handle;
MojoHandleSignals handle_signals;
@@ -99,9 +103,8 @@ void WatcherBackend::StartWatching(const WatchData& data) {
DCHECK_EQ(0u, handle_to_data_.count(data.handle));
handle_to_data_[data.handle] = data;
- MessagePumpMojo::current()->AddHandler(this, data.handle,
- data.handle_signals,
- data.deadline);
+ MessagePumpMojo::current()->AddHandler(data.location, this, data.handle,
+ data.handle_signals, data.deadline);
}
void WatcherBackend::StopWatching(WatcherID watcher_id) {
@@ -163,7 +166,8 @@ class WatcherThreadManager {
// stop watching the handle. When the handle is ready |callback| is notified
// on the thread StartWatching() was invoked on.
// This may be invoked on any thread.
- WatcherID StartWatching(const Handle& handle,
+ WatcherID StartWatching(int location,
+ const Handle& handle,
MojoHandleSignals handle_signals,
base::TimeTicks deadline,
const base::Callback<void(MojoResult)>& callback);
@@ -226,12 +230,14 @@ WatcherThreadManager* WatcherThreadManager::GetInstance() {
}
WatcherID WatcherThreadManager::StartWatching(
+ int location,
const Handle& handle,
MojoHandleSignals handle_signals,
base::TimeTicks deadline,
const base::Callback<void(MojoResult)>& callback) {
RequestData request_data;
request_data.type = REQUEST_START;
+ request_data.start_data.location = location;
request_data.start_data.id = watcher_id_generator_.GetNext();
request_data.start_data.handle = handle;
request_data.start_data.callback = callback;
@@ -372,8 +378,9 @@ class HandleWatcher::SameThreadWatchingState : public StateBase,
handle_(handle) {
DCHECK(MessagePumpMojo::IsCurrent());
- MessagePumpMojo::current()->AddHandler(
- this, handle, handle_signals, MojoDeadlineToTimeTicks(deadline));
+ MessagePumpMojo::current()->AddHandler(watcher->location(), this, handle,
+ handle_signals,
+ MojoDeadlineToTimeTicks(deadline));
}
~SameThreadWatchingState() override {
@@ -415,8 +422,7 @@ class HandleWatcher::SecondaryThreadWatchingState : public StateBase {
: StateBase(watcher, callback),
weak_factory_(this) {
watcher_id_ = WatcherThreadManager::GetInstance()->StartWatching(
- handle,
- handle_signals,
+ watcher->location(), handle, handle_signals,
MojoDeadlineToTimeTicks(deadline),
base::Bind(&SecondaryThreadWatchingState::NotifyHandleReady,
weak_factory_.GetWeakPtr()));
@@ -443,8 +449,7 @@ class HandleWatcher::SecondaryThreadWatchingState : public StateBase {
// HandleWatcher ---------------------------------------------------------------
-HandleWatcher::HandleWatcher() {
-}
+HandleWatcher::HandleWatcher(int location) : location_(location) {}
HandleWatcher::~HandleWatcher() {
}
« no previous file with comments | « mojo/message_pump/handle_watcher.h ('k') | mojo/message_pump/handle_watcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698