Revert "Migrate test/time_controller to webrtc::Mutex."
This reverts commit 52fd96fb731d9a911bd064a9718d96fef0bd5b24. Reason for revert: previously undetected lock recursions happening in downstream project. Original change's description: > Migrate test/time_controller to webrtc::Mutex. > > Bug: webrtc:11567 > Change-Id: I26fb07bf84ed197ce667290aa0bf4816bc9c5c06 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178818 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Markus Handell <handellm@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#31660} TBR=srte@webrtc.org,handellm@webrtc.org Change-Id: Icccfa32ac21412bc46f75ac7aca76641f5593096 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:11567 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178872 Reviewed-by: Markus Handell <handellm@webrtc.org> Commit-Queue: Markus Handell <handellm@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31668}
This commit is contained in:
committed by
Commit Bot
parent
bd49463a9c
commit
122fadc608
@ -28,7 +28,7 @@ SimulatedTaskQueue::~SimulatedTaskQueue() {
|
||||
|
||||
void SimulatedTaskQueue::Delete() {
|
||||
{
|
||||
MutexLock lock(&lock_);
|
||||
rtc::CritScope lock(&lock_);
|
||||
ready_tasks_.clear();
|
||||
delayed_tasks_.clear();
|
||||
}
|
||||
@ -36,7 +36,7 @@ void SimulatedTaskQueue::Delete() {
|
||||
}
|
||||
|
||||
void SimulatedTaskQueue::RunReady(Timestamp at_time) {
|
||||
MutexLock lock(&lock_);
|
||||
rtc::CritScope lock(&lock_);
|
||||
for (auto it = delayed_tasks_.begin();
|
||||
it != delayed_tasks_.end() && it->first <= at_time;
|
||||
it = delayed_tasks_.erase(it)) {
|
||||
@ -48,14 +48,14 @@ void SimulatedTaskQueue::RunReady(Timestamp at_time) {
|
||||
while (!ready_tasks_.empty()) {
|
||||
std::unique_ptr<QueuedTask> ready = std::move(ready_tasks_.front());
|
||||
ready_tasks_.pop_front();
|
||||
lock_.Unlock();
|
||||
lock_.Leave();
|
||||
bool delete_task = ready->Run();
|
||||
if (delete_task) {
|
||||
ready.reset();
|
||||
} else {
|
||||
ready.release();
|
||||
}
|
||||
lock_.Lock();
|
||||
lock_.Enter();
|
||||
}
|
||||
if (!delayed_tasks_.empty()) {
|
||||
next_run_time_ = delayed_tasks_.begin()->first;
|
||||
@ -65,14 +65,14 @@ void SimulatedTaskQueue::RunReady(Timestamp at_time) {
|
||||
}
|
||||
|
||||
void SimulatedTaskQueue::PostTask(std::unique_ptr<QueuedTask> task) {
|
||||
MutexLock lock(&lock_);
|
||||
rtc::CritScope lock(&lock_);
|
||||
ready_tasks_.emplace_back(std::move(task));
|
||||
next_run_time_ = Timestamp::MinusInfinity();
|
||||
}
|
||||
|
||||
void SimulatedTaskQueue::PostDelayedTask(std::unique_ptr<QueuedTask> task,
|
||||
uint32_t milliseconds) {
|
||||
MutexLock lock(&lock_);
|
||||
rtc::CritScope lock(&lock_);
|
||||
Timestamp target_time =
|
||||
handler_->CurrentTime() + TimeDelta::Millis(milliseconds);
|
||||
delayed_tasks_[target_time].push_back(std::move(task));
|
||||
|
||||
Reference in New Issue
Block a user