ProcessThread improvements.

* Added a way to notify a Module that it's been attached to a ProcessThread.
  The benefit of this is to give the module a way to wake up the thread
  when it needs work to happen on the worker thread, immediately.
  Today, module instances are typically registered with a process thread
  outside the control of the modules themselves.  I.e. they typically
  don't know about the process thread they're attached to.

* Improve ProcessThread's WakeUp algorithm to not call TimeUntilNextProcess
  when a WakeUp call is requested.  This is an optimization for the above
  case which avoids the module having to acquire a lock or do an interlocked
  operation before calling WakeUp(), which would ensure the module's
  TimeUntilNextProcess() implementation would return 0.

BUG=2822
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39239004

Cr-Commit-Position: refs/heads/master@{#8527}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8527 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/utility/interface/process_thread.h b/webrtc/modules/utility/interface/process_thread.h
index 2262f2d..e30325c 100644
--- a/webrtc/modules/utility/interface/process_thread.h
+++ b/webrtc/modules/utility/interface/process_thread.h
@@ -24,10 +24,10 @@
   static rtc::scoped_ptr<ProcessThread> Create();
 
   // Starts the worker thread.  Must be called from the construction thread.
-  virtual int32_t Start() = 0;
+  virtual void Start() = 0;
 
   // Stops the worker thread.  Must be called from the construction thread.
-  virtual int32_t Stop() = 0;
+  virtual void Stop() = 0;
 
   // Wakes the thread up to give a module a chance to do processing right
   // away.  This causes the worker thread to wake up and requery the specified
@@ -38,11 +38,11 @@
 
   // Adds a module that will start to receive callbacks on the worker thread.
   // Can be called from any thread.
-  virtual int32_t RegisterModule(Module* module) = 0;
+  virtual void RegisterModule(Module* module) = 0;
 
   // Removes a previously registered module.
   // Can be called from any thread.
-  virtual int32_t DeRegisterModule(const Module* module) = 0;
+  virtual void DeRegisterModule(Module* module) = 0;
 };
 
 }  // namespace webrtc