| Index: webrtc/system_wrappers/source/condition_variable_unittest.cc
 | 
| diff --git a/webrtc/system_wrappers/source/condition_variable_unittest.cc b/webrtc/system_wrappers/source/condition_variable_unittest.cc
 | 
| index 2e873dca1687e924d653d79d401da67ecf1ea966..4b1b6cc608998d8721323e1e19bb929e3b9c3c5c 100644
 | 
| --- a/webrtc/system_wrappers/source/condition_variable_unittest.cc
 | 
| +++ b/webrtc/system_wrappers/source/condition_variable_unittest.cc
 | 
| @@ -8,13 +8,13 @@
 | 
|   *  be found in the AUTHORS file in the root of the source tree.
 | 
|   */
 | 
|  
 | 
| -#include "webrtc/system_wrappers/include/condition_variable_wrapper.h"
 | 
| -
 | 
|  // TODO(tommi): Remove completely.  As is there is still some code for Windows
 | 
| -// that relies on ConditionVariableWrapper, but code has been removed on other
 | 
| +// that relies on ConditionVariableEventWin, but code has been removed on other
 | 
|  // platforms.
 | 
|  #if defined(WEBRTC_WIN)
 | 
|  
 | 
| +#include "webrtc/system_wrappers/source/condition_variable_event_win.h"
 | 
| +
 | 
|  #include "testing/gtest/include/gtest/gtest.h"
 | 
|  #include "webrtc/base/platform_thread.h"
 | 
|  #include "webrtc/base/scoped_ptr.h"
 | 
| @@ -40,37 +40,36 @@ const int kVeryShortWaitMs = 20; // Used when we want a timeout
 | 
|  class Baton {
 | 
|   public:
 | 
|    Baton()
 | 
| -    : giver_sect_(CriticalSectionWrapper::CreateCriticalSection()),
 | 
| -      crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
 | 
| -      cond_var_(ConditionVariableWrapper::CreateConditionVariable()),
 | 
| -      being_passed_(false),
 | 
| +    : being_passed_(false),
 | 
|        pass_count_(0) {
 | 
| +    InitializeCriticalSection(&crit_sect_);
 | 
|    }
 | 
|  
 | 
|    ~Baton() {
 | 
| -    delete giver_sect_;
 | 
| -    delete crit_sect_;
 | 
| -    delete cond_var_;
 | 
| +    DeleteCriticalSection(&crit_sect_);
 | 
|    }
 | 
|  
 | 
|    // Pass the baton. Returns false if baton is not picked up in |max_msecs|.
 | 
|    // Only one process can pass at the same time; this property is
 | 
|    // ensured by the |giver_sect_| lock.
 | 
|    bool Pass(uint32_t max_msecs) {
 | 
| -    CriticalSectionScoped cs_giver(giver_sect_);
 | 
| -    CriticalSectionScoped cs(crit_sect_);
 | 
| +    CriticalSectionScoped cs_giver(&giver_sect_);
 | 
| +    EnterCriticalSection(&crit_sect_);
 | 
|      SignalBatonAvailable();
 | 
|      const bool result = TakeBatonIfStillFree(max_msecs);
 | 
|      if (result) {
 | 
|        ++pass_count_;
 | 
|      }
 | 
| +    LeaveCriticalSection(&crit_sect_);
 | 
|      return result;
 | 
|    }
 | 
|  
 | 
|    // Grab the baton. Returns false if baton is not passed.
 | 
|    bool Grab(uint32_t max_msecs) {
 | 
| -    CriticalSectionScoped cs(crit_sect_);
 | 
| -    return WaitUntilBatonOffered(max_msecs);
 | 
| +    EnterCriticalSection(&crit_sect_);
 | 
| +    bool ret = WaitUntilBatonOffered(max_msecs);
 | 
| +    LeaveCriticalSection(&crit_sect_);
 | 
| +    return ret;
 | 
|    }
 | 
|  
 | 
|    int PassCount() {
 | 
| @@ -79,7 +78,7 @@ class Baton {
 | 
|      // finishes. I.e. the Grab()-call may finish before |pass_count_| has been
 | 
|      // incremented.
 | 
|      // Thus, this function waits on giver_sect_.
 | 
| -    CriticalSectionScoped cs(giver_sect_);
 | 
| +    CriticalSectionScoped cs(&giver_sect_);
 | 
|      return pass_count_;
 | 
|    }
 | 
|  
 | 
| @@ -88,19 +87,19 @@ class Baton {
 | 
|    // These functions must be called with crit_sect_ held.
 | 
|    bool WaitUntilBatonOffered(int timeout_ms) {
 | 
|      while (!being_passed_) {
 | 
| -      if (!cond_var_->SleepCS(*crit_sect_, timeout_ms)) {
 | 
| +      if (!cond_var_.SleepCS(&crit_sect_, timeout_ms)) {
 | 
|          return false;
 | 
|        }
 | 
|      }
 | 
|      being_passed_ = false;
 | 
| -    cond_var_->Wake();
 | 
| +    cond_var_.Wake();
 | 
|      return true;
 | 
|    }
 | 
|  
 | 
|    void SignalBatonAvailable() {
 | 
|      assert(!being_passed_);
 | 
|      being_passed_ = true;
 | 
| -    cond_var_->Wake();
 | 
| +    cond_var_.Wake();
 | 
|    }
 | 
|  
 | 
|    // Timeout extension: Wait for a limited time for someone else to
 | 
| @@ -112,27 +111,25 @@ class Baton {
 | 
|    bool TakeBatonIfStillFree(int timeout_ms) {
 | 
|      bool not_timeout = true;
 | 
|      while (being_passed_ && not_timeout) {
 | 
| -      not_timeout = cond_var_->SleepCS(*crit_sect_, timeout_ms);
 | 
| +      not_timeout = cond_var_.SleepCS(&crit_sect_, timeout_ms);
 | 
|        // If we're woken up while variable is still held, we may have
 | 
|        // gotten a wakeup destined for a grabber thread.
 | 
|        // This situation is not treated specially here.
 | 
|      }
 | 
| -    if (!being_passed_) {
 | 
| +    if (!being_passed_)
 | 
|        return true;
 | 
| -    } else {
 | 
| -      assert(!not_timeout);
 | 
| -      being_passed_ = false;
 | 
| -      return false;
 | 
| -    }
 | 
| +    assert(!not_timeout);
 | 
| +    being_passed_ = false;
 | 
| +    return false;
 | 
|    }
 | 
|  
 | 
|    // Lock that ensures that there is only one thread in the active
 | 
|    // part of Pass() at a time.
 | 
|    // |giver_sect_| must always be acquired before |cond_var_|.
 | 
| -  CriticalSectionWrapper* giver_sect_;
 | 
| +  CriticalSectionWrapper giver_sect_;
 | 
|    // Lock that protects |being_passed_|.
 | 
| -  CriticalSectionWrapper* crit_sect_;
 | 
| -  ConditionVariableWrapper* cond_var_;
 | 
| +  CRITICAL_SECTION crit_sect_;
 | 
| +  ConditionVariableEventWin cond_var_;
 | 
|    bool being_passed_;
 | 
|    // Statistics information: Number of successfull passes.
 | 
|    int pass_count_;
 | 
| @@ -191,16 +188,17 @@ TEST_F(CondVarTest, DISABLED_PassBatonMultipleTimes) {
 | 
|  }
 | 
|  
 | 
|  TEST(CondVarWaitTest, WaitingWaits) {
 | 
| -  rtc::scoped_ptr<CriticalSectionWrapper> crit_sect(
 | 
| -      CriticalSectionWrapper::CreateCriticalSection());
 | 
| -  rtc::scoped_ptr<ConditionVariableWrapper> cond_var(
 | 
| -      ConditionVariableWrapper::CreateConditionVariable());
 | 
| -  CriticalSectionScoped cs(crit_sect.get());
 | 
| +  CRITICAL_SECTION crit_sect;
 | 
| +  InitializeCriticalSection(&crit_sect);
 | 
| +  ConditionVariableEventWin cond_var;
 | 
| +  EnterCriticalSection(&crit_sect);
 | 
|    int64_t start_ms = TickTime::MillisecondTimestamp();
 | 
| -  EXPECT_FALSE(cond_var->SleepCS(*(crit_sect), kVeryShortWaitMs));
 | 
| +  EXPECT_FALSE(cond_var.SleepCS(&crit_sect, kVeryShortWaitMs));
 | 
|    int64_t end_ms = TickTime::MillisecondTimestamp();
 | 
|    EXPECT_LE(start_ms + kVeryShortWaitMs, end_ms)
 | 
|        << "actual elapsed:" << end_ms - start_ms;
 | 
| +  LeaveCriticalSection(&crit_sect);
 | 
| +  DeleteCriticalSection(&crit_sect);
 | 
|  }
 | 
|  
 | 
|  }  // anonymous namespace
 | 
| 
 |