203 Commits

Author SHA1 Message Date
hta
3866c4fb46 Testing that waiting for a condition variable waits.
Added a test that verifies that waiting for a condition variable
actually waits for a non-zero time.

This used to fail due to a TSAN / CLANG bug, but this failure
is supposed to have been fixed.

This was originally https://webrtc-codereview.appspot.com/2145004

BUG=2259

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

Cr-Commit-Position: refs/heads/master@{#10341}
2015-10-20 16:31:04 +00:00
henrikg
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
henrikg
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
andrew
88703d756a Disable base/logging.h stderr logs by default for webrtc/ tests.
base/logging.h dumped to stderr by default in debug mode, but webrtc
"trace" (via system_wrappers/../logging.h) has that feature disabled by
default. This makes the two consistent.

Bonus: log the filename:line in base/logging.h, which exists in the
system_wrappers variant.

TEST=neteq_impl.cc logs (which use base/logging.h) no longer appear in
debug mode, unless --logs=true is passed. Filenames appear correctly.

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

Cr-Commit-Position: refs/heads/master@{#9868}
2015-09-07 07:35:03 +00:00
Peter Kasting
dce40cf804 Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.

This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.

This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002

The change is being landed as TBR to all the folks who reviewed the above.

BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher

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

Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 21:52:45 +00:00
tommi
efefda6062 Move SystemInfo to rtc_base_approved and delete unused code.
This cl removes a lot of unused functionality in SystemInfo and reduces dependencies.
There's duplicate functionality in this class and WebRTC's CpuInfo class, so I'm consolidating the two implementations.
The CpuInfo interface will still exist since it's being used from Chrome to initialize the core count before the sandbox is engaged.
With this change, the SystemInfo class will get the benefit too of this initialization.

NOTRY=true
(using no try due to a dead android try bot)

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

Cr-Commit-Position: refs/heads/master@{#9743}
2015-08-20 12:04:18 +00:00
Brave Yao
a44660960a When we trace to file, add eol of each trace message.
BUG=webrtc:4864
TEST=Manual Test with voe_cmd_test
R=pbos@webrtc.org
TBR=kjellander@webrtc.org

The regression is introduced in #8529, Review URL: https://webrtc-codereview.appspot.com/34329004.

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

Cr-Commit-Position: refs/heads/master@{#9644}
2015-07-28 02:46:01 +00:00
pbos
235c35f292 Implement store as an explicit atomic operation.
Using explicit atomic operations permits TSan to understand them and
prevents false positives.

Downgrading the atomic Load to acquire semantics. This reduces the
number of memory barriers inserted from two down to one at most.

Also renaming Load/Store to AcquireLoad/ReleaseStore.

BUG=chromium:512382
R=dvyukov@chromium.org, glider@chromium.org
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9613}
2015-07-22 15:35:04 +00:00
dcheng
a771bf8ee8 Fix some clang warnings with -Wmissing-braces in WebRTC.
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
  STRUCT s = {0};
if the first field of STRUCT is itself a struct. This can
be more simply written as:
  STRUCT s = {};
which also prevents the warning from firing.

Other instances of the warning have been fixed by adding
braces where appropriate.

BUG=505297
TBR=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9529}
2015-07-02 00:52:18 +00:00
Henrik Kjellander
e8d191f00f Restore rows() and cols() in aligned_array.h
These getters were removed in https://codereview.webrtc.org/1172163004
but are used in external code, so it makes sense to keep
them around to make the class more useful.

R=henrikg@webrtc.org, pkasting@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9478}
2015-06-20 18:11:02 +00:00
Tommi
ea14f0ac11 Move SetCurrentThreadName to platform_thread.* in rtc_base_approved,
update all webrtc and libjingle code to use the same function and remove
extra implementations.

BUG=
R=andresp@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9205}
2015-05-18 11:50:31 +00:00
Peter Boström
ff019b0b55 Move rtc::AtomicOps to webrtc/base/atomicops.h.
Removes FixedSizeLockFreeQueue which isn't used anymore. This enabled
moving rtc::AtomicOps to webrtc/base/atomicops.h where they should be.

BUG=4330
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9120}
2015-04-30 12:16:14 +00:00
Peter Boström
64c0366908 Revert "Revert "Split EventWrapper in twain.""
This reverts commit cf3c83e76c273309558c86fda915410f65b7a899.

Reverting EventWrapper split did not fix the issue, re-landing.

BUG=chromium:470013
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8946}
2015-04-08 09:24:25 +00:00
Minyue
cf3c83e76c Revert "Split EventWrapper in twain."
This reverts commit 9509fbfc301dd5412804ce5731afedc81480f2f8.

This is to debug a Chromium issue that WebRTC hangs if there is > 1 PeerConnection active in the browser on Win XP.

BUG=

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8912}
2015-04-01 14:31:45 +00:00
tommi@webrtc.org
a3ffc56cee Allow setting thread priorities in Chromium on all but linux platforms.
The previous check was overly broad, so narrowing it down to linux only.

R=pbos@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8837}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8837 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 20:11:45 +00:00
tommi@webrtc.org
9509fbfc30 Split EventWrapper in twain.
I'm splitting the timer functions in EventWrapper into a separate interface.
- Users of the timer functions have different needs than users of a generic event
- Providing a default implementation for EventWrapper that simply uses rtc::Event.

This means that clients of WebRTC that don't use the relatively few classes, typically rendering classes, that depend on the event timer functionality, also don't pull in dependencies on multimedia timers.

R=mflodman@webrtc.org, mflodman
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8833}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8833 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 16:25:46 +00:00
tommi@webrtc.org
1596a4f88b Temporarily disable SetPriority when building with Chromium.
This is due to errors we were hitting with Chromium's sandbox policy for pthread_setschedparam.

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

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

Cr-Commit-Position: refs/heads/master@{#8829}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8829 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 12:39:38 +00:00
tommi@webrtc.org
38492c5b6f Re-land 8810 "- Add a SetPriority method to ThreadWr..."
> Revert 8810 "- Add a SetPriority method to ThreadWrapper"
> Seeing if this is causing roll issues.
> 
> > - Add a SetPriority method to ThreadWrapper
> > - Remove 'priority' from CreateThread and related member variables from implementations
> > - Make supplying a name for threads, non-optional
> > 
> > BUG=
> > R=magjed@webrtc.org
> > 
> > Review URL: https://webrtc-codereview.appspot.com/44729004
> 
> TBR=tommi@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/48609004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8819}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8819 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 14:42:46 +00:00
tommi@webrtc.org
90a1cb4630 Revert 8810 "- Add a SetPriority method to ThreadWrapper"
Seeing if this is causing roll issues.

> - Add a SetPriority method to ThreadWrapper
> - Remove 'priority' from CreateThread and related member variables from implementations
> - Make supplying a name for threads, non-optional
> 
> BUG=
> R=magjed@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/44729004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8818}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8818 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 14:34:46 +00:00
tommi@webrtc.org
b6817d793f - Add a SetPriority method to ThreadWrapper
- Remove 'priority' from CreateThread and related member variables from implementations
- Make supplying a name for threads, non-optional

BUG=
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8810}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8810 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 15:52:43 +00:00
tommi@webrtc.org
361981faa8 Use scoped_ptr for ThreadWrapper::CreateThread.
BUG=
R=henrika@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8794}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8794 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 14:45:42 +00:00
tommi@webrtc.org
27c0be9dfe Remove ThreadObj #define and kThreadMaxNameLength from thread_wrapper.
BUG=
R=hbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8792}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8792 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 14:36:43 +00:00
tommi@webrtc.org
c7157da599 Use atomic operations for setting/reading the trace filter.
The filter is currently being set and read by a number of threads and tripping up tsan.

Original review: https://webrtc-codereview.appspot.com/47609004/

R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8789}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8789 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 09:30:45 +00:00
tommi@webrtc.org
25819b8294 Revert 8753 "Use atomic operations for setting/reading the trace..."
Caused VP9 test to fail on TSAN and doesn't build in some configuration due to
"../webrtc/base/criticalsection.h:181:12: error: cannot compile this atomic library call yet"
:-(

> Use atomic operations for setting/reading the trace filter.
> The filter is currently being set and read by a number of threads and tripping up tsan.
> 
> R=mflodman@webrtc.org
> BUG=
> 
> Review URL: https://webrtc-codereview.appspot.com/47609004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8759}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8759 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 15:35:41 +00:00
tommi@webrtc.org
7c64ed2e0c Move trace_event and associated files to webrtc/base.
Also starting to use TRACE_EVENT from thread.cc in webrtc/base, to track Invoke() calls.

BUG=
R=magjed@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8755}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8755 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 14:26:15 +00:00
tommi@webrtc.org
c383c24c2b Use atomic operations for setting/reading the trace filter.
The filter is currently being set and read by a number of threads and tripping up tsan.

R=mflodman@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8753}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8753 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 13:47:16 +00:00
pbos@webrtc.org
a846371ace Modify EventPosix to prevent spurious wakeups.
pthread_cond_{timedwait,wait} are allowed to spuriously wake up as if
they were signaled. To prevent this being interpreted as a "real"
signaling of the event (ThreadWrapper for instance depends on it being
an actual signal) we need to check whether the event was actually
signalled or not.

BUG=4413
R=andresp@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8752}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8752 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 13:14:46 +00:00
tommi@webrtc.org
aba9219e5c Change ThreadPosix to use an auto-reset event instead of manual reset now that we know the problem we had with EventWrapper::Wait was simply a bug in the EventWrapper. Also removing |started_| since we can just check the thread_ instead.
R=pbos@webrtc.org
BUG=4413

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

Cr-Commit-Position: refs/heads/master@{#8738}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8738 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 16:06:16 +00:00
pbos@webrtc.org
86639737b8 Remove thread id from ThreadWrapper::Start().
Removes ThreadPosix::InitParams and a corresponding wait for an event.
This unblocks ThreadPosix::Start which had to wait for thread scheduling
for an event to trigger on the spawned thread, giving faster Start()
calls.

BUG=4413
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8709}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8709 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 00:07:45 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
tommi@webrtc.org
d31250518a Test to try to track down the alignment problem on Mac 10.9.
There's no code change here, I'm rearranging member variables of the
trace class and adding a sizeof check to the CriticalSection
class + alignment attribute for the mutex, on Mac only.

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8540}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8540 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-28 00:01:56 +00:00
pbos@webrtc.org
4b3618c7f3 Remove TraceImpl logging thread.
Simplifies TraceImpl significantly. Chromium uses trace callbacks and
logs directly through the trace callback interface. Added slowdowns when
logging to file are expected to only affect test targets.

BUG=
R=andresp@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8529}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8529 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 15:05:50 +00:00
kwiberg@webrtc.org
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
tommi@webrtc.org
d3d3baaa8e Copy SetThreadName from webrtc/base/thread.cc into thread_win.cc
(webrtc/system_wrappers/source/thread_win.cc).
It would be good to consolidate these helpers at some point.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#8439}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8439 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 19:18:54 +00:00
pbos@webrtc.org
d5ce2e63df Remove EventWrapper::Reset().
This simplifies the event wrapper which we've recently found issues in.
Also refactoring EndToEndTest.RespectsNetworkState to not depend on it.

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

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

Cr-Commit-Position: refs/heads/master@{#8366}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8366 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 14:58:38 +00:00
sprang@webrtc.org
a6e8cebbd5 Fix false positive DHECK in event_posix.cc
It's OK that state is kDown when a thread is woken after being
signalled; another tread might also have woken and already set the state
to kDown.

Even if this waking and aquiring lock has been delayed until other
threads have set state to kDown and then subsequently to kUp again with
a new Set() call, it's OK to just set kDown and return since this thread
is returning kEventSignaled after the (new) Set() has ben called.

R=pbos@webrtc.org
TBR=tommi@webrtc.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#8334}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8334 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 15:19:22 +00:00
tommi@webrtc.org
9d94a0c736 Switch to QueueUserAPC for shutting down the thread (no event needed).
Also actually specifying the reserve stack size.

BUG=
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8331}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8331 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 14:16:44 +00:00
tommi@webrtc.org
30015e3180 Fix bug in EventPosix where we'd miss a set event.
In cases of timeout or error, we could change the state of the event to 'down' (unset) and subsequently never satisfy a Wait() for a given Set().

BUG=4284
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8310}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8310 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-10 09:34:02 +00:00
tommi@webrtc.org
f7e6cfd3a0 Add CHECK to EventWrapper to see if there's a subtle bug there or not.
R=pbos@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8302}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8302 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 18:25:56 +00:00
glaznev@webrtc.org
669bc7ee43 Modify default field trial implementation to allow
WebRTC client to turn on feature code.

R=andresp@webrtc.org, henrika@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8301}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8301 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 18:18:19 +00:00
tommi@webrtc.org
11c5db01af Revert 8273 "Temporarily change ThreadPosix to CHECK (crash) if ..."
> Temporarily change ThreadPosix to CHECK (crash) if we ever spend more than 30 seconds waiting for thread shutdown. There are cases on build bots where it looks like we're hitting this problem, but reproducing locally has been a struggle.
> 
> TBR=pbos@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/41799004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8300}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8300 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 16:31:54 +00:00
tommi@webrtc.org
d0165c62b5 Use a manual reset event in PosixThread.
This fixes occasional hangs we've been seeing in the past few days. I'm using rtc::Event instead of the EventWrapper, so I'll wait with landing this cl until I've made that change in a separate cl.

BUG=2822,4282
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8293}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8293 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 11:48:13 +00:00
tommi@webrtc.org
fe19699a20 Revert 8260 "Base RWLockWrapper on rtc::SharedExclusiveLock."
Unfortunately this caused channel teardown to hang.
More details in email(s).

> Base RWLockWrapper on rtc::SharedExclusiveLock.
>
> Also moves rtc::Event and rtc::SharedExclusiveLock to rtc_base_approved.
>
> R=tommi@webrtc.org
> BUG=
>
> Review URL: https://webrtc-codereview.appspot.com/38889004

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8284}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8284 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 22:36:19 +00:00
tommi@webrtc.org
ccd7e99f0a Temporarily change ThreadPosix to CHECK (crash) if we ever spend more than 30 seconds waiting for thread shutdown. There are cases on build bots where it looks like we're hitting this problem, but reproducing locally has been a struggle.
TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8273}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8273 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 19:27:12 +00:00
pbos@webrtc.org
75025434bf Base RWLockWrapper on rtc::SharedExclusiveLock.
Also moves rtc::Event and rtc::SharedExclusiveLock to rtc_base_approved.

R=tommi@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8260}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8260 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 08:33:15 +00:00
tommi@webrtc.org
5d32f43219 Disable CondVarTest.InitFunctionsWork.
The order of Sleep/Wake calls doesn't seem to be guaranteed, so this test
is flaky.

BUG=4262
TBR=bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8247}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8247 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-05 06:26:35 +00:00
tommi@webrtc.org
875c97ed9d Remove SetNotAlive method from the thread class.
Also cleaning up methods with the same name in other classes that are derived from the above method.

R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8242}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8242 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-04 11:12:39 +00:00
bjornv@webrtc.org
dc096f2c7e system_wrappers: Disabled flaky test CondVarTest.PassBatonMultipleTimes
Has been flaky on Win since r8220.
Disabling for now.

BUG=4262
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8240}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8240 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-04 09:14:42 +00:00
tommi@webrtc.org
d43bdf50c5 Rewrite ThreadPosix.
This is the same change as already made for Windows:
https://webrtc-codereview.appspot.com/37069004/

* Remove "dead" and "alive" variables.
* Remove critical section
* Remove implementation of SetNotAlive()
* Always set thread name
* Add thread checks for correct usage.

* Changed AudioDeviceMac to create/start/stop/delete thread objects for playout and recording, inside the respective start and stop method.  The reason for this is because the AudioDeviceMac instance is currently being created on one thread and the above Start/Stop methods are being called on a different thread.  So, my change makes creation, start/stop, deletion of the thread objects always happen on the same thread.

I'm making CurrentThreadId() in rtc_base_approved more visible so that it can be used  from there instead of inside webrtc. Down the line we will have more thread concepts in rtc_base_approved, so I put a TODO for myself to move this functionality to there once we do.

R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8235}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8235 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-03 16:30:21 +00:00
tommi@webrtc.org
aef0779dab Rewrite ThreadWindows.
* Remove "dead" and "alive" variables.
* Remove critical section
* Skip synchronizing with the worker thread to verify startup (no need).
* Remove implementation of SetNotAlive()
* Always set thread name
* Add thread checks for correct usage.

Also added some TODOs for myself for the ThreadWrapper interface.

I'm removing the HasNoMonitorThread test since it is no longer relevant and ends up checking the wrong thing (ProcessThread - a generic thread type) in the wrong way (parsing a debug log) :)  I think it served a purpose some years ago, but things have changed since.

BUG=2902
R=henrika@webrtc.org

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

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