Chromium Code Reviews| Index: webrtc/base/sequenced_task_checker_impl.cc |
| diff --git a/webrtc/base/sequenced_task_checker_impl.cc b/webrtc/base/sequenced_task_checker_impl.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7b9b49d555e795fa24917531dd223f83830d9995 |
| --- /dev/null |
| +++ b/webrtc/base/sequenced_task_checker_impl.cc |
| @@ -0,0 +1,41 @@ |
| +/* |
| + * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
| + * |
| + * Use of this source code is governed by a BSD-style license |
| + * that can be found in the LICENSE file in the root of the source |
| + * tree. An additional intellectual property rights grant can be found |
| + * in the file PATENTS. All contributing project authors may |
| + * be found in the AUTHORS file in the root of the source tree. |
| + */ |
| + |
| +#include "webrtc/base/sequenced_task_checker_impl.h" |
| + |
| +#include "webrtc/base/platform_thread.h" |
| + |
| +namespace rtc { |
| + |
| +SequencedTaskCheckerImpl::SequencedTaskCheckerImpl() |
| + : attached_(true), valid_queu_(TaskQueue::Current()) {} |
| + |
| +SequencedTaskCheckerImpl::~SequencedTaskCheckerImpl() {} |
| + |
| +bool SequencedTaskCheckerImpl::IsCurrent() const { |
| + TaskQueue* current_queu = TaskQueue::Current(); |
|
tommi
2016/07/08 13:15:15
queue
perkj_webrtc
2016/07/11 08:38:00
Done.
|
| + CritScope scoped_lock(&lock_); |
| + if (!attached_) { // true if previously detached. |
| + valid_queu_ = TaskQueue::Current(); |
|
tommi
2016/07/08 13:15:15
valid_queue_ = current_queue;
(since you've alrea
perkj_webrtc
2016/07/11 08:38:00
Done.
|
| + attached_ = true; |
| + } |
| + if (!valid_queu_) |
| + return thread_checker_.CalledOnValidThread(); |
| + return valid_queu_ == current_queu; |
| +} |
| + |
| +void SequencedTaskCheckerImpl::Detach() { |
| + CritScope scoped_lock(&lock_); |
| + attached_ = false; |
| + valid_queu_ = nullptr; |
| + thread_checker_.DetachFromThread(); |
| +} |
| + |
| +} // namespace rtc |