Commit Graph

11 Commits

Author SHA1 Message Date
c91d173870 Revert of Several Tick counter improvements. (patchset #8 id:140001 of https://codereview.webrtc.org/1415923010/ )
Reason for revert:
Potentially breaks a threading test under DrMemory.  Rolling back while I investigate.

Original issue's description:
> Several Tick counter improvements.
>
> Move logic into cc file
> Simplify interval calculation
> Remove unused QUERY_PERFORMANCE_COUNTER windows implementation
> Remove double divide on each ::Now() invocation on mac
>
> Move TickTime and TickInterval funcitons to cc file in prep for refactoring.
>
> BUG=
> R=mflodman@webrtc.org, pbos@webrtc.org
>
> Committed: https://crrev.com/4c27e4b62da2047063d88eedfeec3e939fea7843
> Cr-Commit-Position: refs/heads/master@{#10661}

TBR=pbos@webrtc.org,mflodman@webrtc.org,noahric@chromium.org,thaloun@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1450203002

Cr-Commit-Position: refs/heads/master@{#10663}
2015-11-17 00:28:56 +00:00
4c27e4b62d Several Tick counter improvements.
Move logic into cc file
Simplify interval calculation
Remove unused QUERY_PERFORMANCE_COUNTER windows implementation
Remove double divide on each ::Now() invocation on mac

Move TickTime and TickInterval funcitons to cc file in prep for refactoring.

BUG=
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1415923010 .

Cr-Commit-Position: refs/heads/master@{#10661}
2015-11-16 22:37:59 +00:00
ff761fba82 modules: more interface -> include renames
This changes the following module directories:
* webrtc/modules/audio_conference_mixer/interface
* webrtc/modules/interface
* webrtc/modules/media_file/interface
* webrtc/modules/rtp_rtcp/interface
* webrtc/modules/utility/interface

To avoid breaking downstream, I followed this recipe:
1. Copy the interface dir to a new sibling directory: include
2. Update the header guards in the include directory to match the style guide.
3. Update the header guards in the interface directory to match the ones in include. This is required to avoid getting redefinitions in the not-yet-updated downstream code.
4. Add a pragma warning in the header files in the interface dir. Example:
#pragma message("WARNING: webrtc/modules/interface is DEPRECATED; "
                "use webrtc/modules/include")
5. Search for all source references to webrtc/modules/interface and update them to webrtc/modules/include (*.c*,*.h,*.mm,*.S)
6. Update all GYP+GN files. This required manual inspection since many subdirectories of webrtc/modules referenced the interface dir using ../interface etc(*.gyp*,*.gn*)

BUG=5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel -m tryserver.webrtc

R=stefan@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1417683006 .

Cr-Commit-Position: refs/heads/master@{#10500}
2015-11-04 07:32:04 +00:00
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1413333002 .

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
847855b865 Add a name to the ProcessThread constructor.
Helps differentiate between different instances when debugging.

Review URL: https://codereview.webrtc.org/1337003003

Cr-Commit-Position: refs/heads/master@{#9927}
2015-09-11 16:52:22 +00:00
03054486f5 Adding basic support for posting tasks to a process thread.
BUG=
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8614}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8614 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 13:14:19 +00:00
3985f0151a 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
2015-02-27 13:37:25 +00:00
11426dc719 Don't rely on webrtc/base/scoped_ptr.h to include stuff for you
webrtc/base/scoped_ptr.h doesn't need to include webrtc/base/common.h
anymore, but a couple of its users were relying on it to pull in other
things for them. Fix that, and remove the now really unnecessary
webrtc/base/common.h include.

R=andrew@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8333}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8333 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 14:31:19 +00:00
1d4830a077 Disable ProcessThread tests that are dependent on timing.
Some of the bots are too slow for the tests to make much sense as they are.

TBR=bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8281}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8281 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 08:44:40 +00:00
bc3241a8cc Update ProcessCallAfterXms to better match the performance of our faster bots. Previously I had made sure these tests didn't flake out on our slow trybots, but apparently I need to do the same for the fast bots :)
TBR=bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8262}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8262 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 11:28:41 +00:00
0c3e12b7bf Revamp the ProcessThreadImpl implementation.
* Add a new WakeUp method that gives a module a chance to be called back right away on the worker thread.
* Wrote unit tests for the class.
* Significantly reduce the amount of locking.
  - ProcessThreadImpl itself does a lot less locking.
  - Reimplemented the way we keep track of when to make calls to Process.
    This reduces the amount of calls to TimeUntilNextProcess and since most implementations of that function grab a lock, this means less locking.
* Renamed ProcessThread::CreateProcessThread to ProcessThread::Create.
* Added thread checks for Start/Stop.  Threading model of other functions is now documented.
* We now log an error if an implementation of TimeUntilNextProcess returns a negative value (some implementations do, but the method should only return a positive nr of ms).
* Removed the DestroyProcessThread method and instead force callers to use scoped_ptr<> to maintain object lifetime.

BUG=2822
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8261}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8261 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 09:44:45 +00:00