History log of /external/webrtc/webrtc/base/thread_checker_impl.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
12411ef40e08c5e28ccde54ab3418c96676ffcbc 23-Nov-2015 pbos <pbos@webrtc.org> Move ThreadWrapper to ProcessThread in base.

Also removes all virtual methods. Permits using a thread from
rtc_base_approved (namely event tracing).

BUG=webrtc:5158
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10760}
/external/webrtc/webrtc/base/thread_checker_impl.h
91d6edef35e7275879c30ce16ecb8b6dc73c6e4a 17-Sep-2015 henrikg <henrikg@webrtc.org> 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}
/external/webrtc/webrtc/base/thread_checker_impl.h
bebc69010d09bab32f59ae110a2c181a09191f02 18-May-2015 Tommi <tommi@webrtc.org> Add platform_thread source files and move types from thread_checker_impl to there.

BUG=
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9201}
/external/webrtc/webrtc/base/thread_checker_impl.h
2eb166079130628f908f07538333130e6885c12d 07-Feb-2015 tommi@webrtc.org <tommi@webrtc.org> Switch ThreadCheckerImpl over to using PlatformThreadRef.
Like PlatformThreadId, this type is borrowed from Chromium.
The difference between the two is that PlatformThreadRef is pthread_t on posix platforms.
On Windows PlatformThreadRef and PlatformThreadId are the same thing.

The reason for this switch is pretty crazy. On Chromium's "Mac 10.9 dbg" bot,
we have been seeing the following code:

ThreadCheckerImpl::ThreadCheckerImpl() : valid_thread_(CurrentThreadId()) {
fprintf(stderr, "*** valid=%d\n", valid_thread_);
valid_thread_ = CurrentThreadId();
fprintf(stderr, "*** valid after=%d\n", valid_thread_);
}

print this:

*** valid=946872320
*** valid after=5647

This is for the same thread checker instance.

What's worse is that printing out what CurrentThreadId was returning, yielded that it was always returning 5647.

After switching over to pthread_t on Mac, this stopped happening.
So, to remove the current hack, reinstate the class on Mac and take a look at the next problem, I'm switching to pthread_t.
Really looking forward to truly getting to the bottom of this.

Tbr-ing since the build is essentially broken (we can't roll).

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8283}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8283 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/base/thread_checker_impl.h
d43bdf50c591534160daf1fc69619fe4696cf5f9 03-Feb-2015 tommi@webrtc.org <tommi@webrtc.org> 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
/external/webrtc/webrtc/base/thread_checker_impl.h
04cd466bd5a05702f1f760fe9a2f4d81b2baed26 26-Jan-2015 tommi@webrtc.org <tommi@webrtc.org> Move ThreadChecker into rtc_base_approved.

To do this, I'm removing ThreadChecker's dependency on the 'Thread' class, so that the checker works with any thread and doesn't rely on TLS.
Also simplifying CriticalSection's implementation on Windows since a critical section on Windows already knows what thread currently owns the lock.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8151 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/base/thread_checker_impl.h
1e3c5c248a5314b08765c1f629be5a4409d74013 16-Jun-2014 henrik.lundin@webrtc.org <henrik.lundin@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> Importing ThreadChecker class from Chromium

The ThreadChecker class is imported/re-implemented from Chromium.
The implementation is changed to depend on WebRTC primitives.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6446 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/base/thread_checker_impl.h