aboutsummaryrefslogtreecommitdiff
path: root/source/Host/windows/Condition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Host/windows/Condition.cpp')
-rw-r--r--source/Host/windows/Condition.cpp98
1 files changed, 0 insertions, 98 deletions
diff --git a/source/Host/windows/Condition.cpp b/source/Host/windows/Condition.cpp
deleted file mode 100644
index 2f16ad77d7a3..000000000000
--- a/source/Host/windows/Condition.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-//===-- Condition.cpp -------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <errno.h>
-
-#include "lldb/Host/Condition.h"
-#include "lldb/Host/TimeValue.h"
-#include "lldb/Host/windows/windows.h"
-
-
-using namespace lldb_private;
-
-//----------------------------------------------------------------------
-// Default constructor
-//
-// The default constructor will initialize a new pthread condition
-// and maintain the condition in the object state.
-//----------------------------------------------------------------------
-Condition::Condition () :
- m_condition()
-{
- m_condition = static_cast<PCONDITION_VARIABLE>(malloc(sizeof(CONDITION_VARIABLE)));
- InitializeConditionVariable(static_cast<PCONDITION_VARIABLE>(m_condition));
-}
-
-//----------------------------------------------------------------------
-// Destructor
-//
-// Destroys the pthread condition that the object owns.
-//----------------------------------------------------------------------
-Condition::~Condition ()
-{
- free(m_condition);
-}
-
-//----------------------------------------------------------------------
-// Unblock all threads waiting for a condition variable
-//----------------------------------------------------------------------
-int
-Condition::Broadcast ()
-{
- WakeAllConditionVariable(static_cast<PCONDITION_VARIABLE>(m_condition));
- return 0;
-}
-
-//----------------------------------------------------------------------
-// Unblocks one thread waiting for the condition variable
-//----------------------------------------------------------------------
-int
-Condition::Signal ()
-{
- WakeConditionVariable(static_cast<PCONDITION_VARIABLE>(m_condition));
- return 0;
-}
-
-//----------------------------------------------------------------------
-// The Wait() function atomically blocks the current thread
-// waiting on the owned condition variable, and unblocks the mutex
-// specified by "mutex". The waiting thread unblocks only after
-// another thread calls Signal(), or Broadcast() with the same
-// condition variable, or if "abstime" is valid (non-NULL) this
-// function will return when the system time reaches the time
-// specified in "abstime". If "abstime" is NULL this function will
-// wait for an infinite amount of time for the condition variable
-// to be signaled or broadcasted.
-//
-// The current thread re-acquires the lock on "mutex".
-//----------------------------------------------------------------------
-int
-Condition::Wait (Mutex &mutex, const TimeValue *abstime, bool *timed_out)
-{
- DWORD wait = INFINITE;
- if (abstime != NULL) {
- int wval = (*abstime - TimeValue::Now()) / 1000000;
- if (wval < 0) wval = 0;
-
- wait = wval;
- }
-
- int err = SleepConditionVariableCS(static_cast<PCONDITION_VARIABLE>(m_condition), static_cast<PCRITICAL_SECTION>(mutex.m_mutex), wait);
-
- if (timed_out != NULL)
- {
- if ((err == 0) && GetLastError() == ERROR_TIMEOUT)
- *timed_out = true;
- else
- *timed_out = false;
- }
-
- return err == 0;
-}
-