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