
Note that this means that there is no new code. The code has been taken directly from condition_variable_win.cc/h compensating minimally to be able to split up the two code paths. Tested by: 1) Disabling native implementation and send to try bots. 2) Only return native implementation (i.e. if native implementation returns NULL there will be a crash when using the condition variable) and send to try bots. 3) The final cl sent to trybots. All tests pass. The changes are due to static analyzer code complaints. BUG=N/A Review URL: https://webrtc-codereview.appspot.com/1191004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3728 4adac7df-926f-26a2-2b94-8c16560cd09d
47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2013 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.
|
|
*/
|
|
|
|
#ifndef WEBRTC_SYSTEM_WRAPPERS_SOURCE_CONDITION_VARIABLE_EVENT_WIN_H_
|
|
#define WEBRTC_SYSTEM_WRAPPERS_SOURCE_CONDITION_VARIABLE_EVENT_WIN_H_
|
|
|
|
#include <windows.h>
|
|
|
|
#include "webrtc/system_wrappers/interface/condition_variable_wrapper.h"
|
|
|
|
namespace webrtc {
|
|
|
|
class ConditionVariableEventWin : public ConditionVariableWrapper {
|
|
public:
|
|
ConditionVariableEventWin();
|
|
virtual ~ConditionVariableEventWin();
|
|
|
|
void SleepCS(CriticalSectionWrapper& crit_sect);
|
|
bool SleepCS(CriticalSectionWrapper& crit_sect, unsigned long max_time_inMS);
|
|
void Wake();
|
|
void WakeAll();
|
|
|
|
private:
|
|
enum EventWakeUpType {
|
|
WAKEALL_0 = 0,
|
|
WAKEALL_1 = 1,
|
|
WAKE = 2,
|
|
EVENT_COUNT = 3
|
|
};
|
|
|
|
unsigned int num_waiters_[2];
|
|
EventWakeUpType eventID_;
|
|
CRITICAL_SECTION num_waiters_crit_sect_;
|
|
HANDLE events_[EVENT_COUNT];
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // WEBRTC_SYSTEM_WRAPPERS_SOURCE_CONDITION_VARIABLE_EVENT_WIN_H_
|