| Index: media/audio/scoped_loop_observer.cc
|
| diff --git a/media/audio/scoped_loop_observer.cc b/media/audio/scoped_loop_observer.cc
|
| deleted file mode 100644
|
| index 01187ec8f991be37bad58a9cf648c7be72ed5786..0000000000000000000000000000000000000000
|
| --- a/media/audio/scoped_loop_observer.cc
|
| +++ /dev/null
|
| @@ -1,47 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "media/audio/scoped_loop_observer.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/synchronization/waitable_event.h"
|
| -
|
| -namespace media {
|
| -
|
| -ScopedLoopObserver::ScopedLoopObserver(
|
| - const scoped_refptr<base::MessageLoopProxy>& loop)
|
| - : loop_(loop) {
|
| - ObserveLoopDestruction(true, NULL);
|
| -}
|
| -
|
| -ScopedLoopObserver::~ScopedLoopObserver() {
|
| - ObserveLoopDestruction(false, NULL);
|
| -}
|
| -
|
| -void ScopedLoopObserver::ObserveLoopDestruction(bool enable,
|
| - base::WaitableEvent* done) {
|
| - // Note: |done| may be NULL.
|
| - if (loop_->BelongsToCurrentThread()) {
|
| - base::MessageLoop* loop = base::MessageLoop::current();
|
| - if (enable) {
|
| - loop->AddDestructionObserver(this);
|
| - } else {
|
| - loop->RemoveDestructionObserver(this);
|
| - }
|
| - } else {
|
| - base::WaitableEvent event(false, false);
|
| - if (loop_->PostTask(FROM_HERE,
|
| - base::Bind(&ScopedLoopObserver::ObserveLoopDestruction,
|
| - base::Unretained(this), enable, &event))) {
|
| - event.Wait();
|
| - } else {
|
| - // The message loop's thread has already terminated, so no need to wait.
|
| - }
|
| - }
|
| -
|
| - if (done)
|
| - done->Signal();
|
| -}
|
| -
|
| -} // namespace media.
|
|
|