コード例 #1
0
ファイル: XosPThreadSemaphore.hpp プロジェクト: medusade/mxde
    ///////////////////////////////////////////////////////////////////////
    ///  Function: Acquire
    ///
    ///    Author: $author$
    ///      Date: 3/27/2012
    ///////////////////////////////////////////////////////////////////////
    virtual XosError Acquire
    (mseconds_t waitMilliseconds)
    {
        XosError error = XOS_ERROR_FAILED;

        if ((m_isCreated))
        if (0 < (waitMilliseconds))
        {
            int err;
            struct timespec untilTime;
            if (!(err = clock_gettime(CLOCK_REALTIME, &untilTime)))
            {
                untilTime.tv_sec += waitMilliseconds/1000;
                untilTime.tv_nsec += (waitMilliseconds%1000)*1000;
                error = TimedWait(untilTime);
            }
            else
            {   XOS_DBE(("() failed on clock_gettime()\n")); }
        }
        else
        if (0 > (waitMilliseconds))
            error = TryWait();
        else
        error = Wait();

        return error;
    }
コード例 #2
0
bool CooperativeWaitable::TimedWait(unsigned int timeout, const char* fiber_state, void (*func)(void*), void* arg)
{
    runtime_env::ABSTime time;
    time.Adjust(0, timeout * 1000);
    return TimedWait(time, fiber_state, func, arg);
}
コード例 #3
0
ファイル: waitable_event.cpp プロジェクト: sijianwudi/varlib
bool WaitableEvent::IsSignaled(){
    return TimedWait(0);
}
コード例 #4
0
ファイル: ConditionVariable.cpp プロジェクト: lailongwei/llbc
void LLBC_ConditionVariable::Wait(LLBC_ILock &lock)
{
    TimedWait(lock, LLBC_INFINITE);
}
コード例 #5
0
 void ConditionVariable::Wait()
 {
     // Default to "wait forever" timing, which means have to get a Signal()
     // or Broadcast() to come out of this wait state.
     TimedWait(TimeDelta::FromMilliseconds(INFINITE));
 }
コード例 #6
0
ファイル: condition.cpp プロジェクト: kaifengz/fasmio
bool Condition::TimedWait(unsigned int timeout)
{
    runtime_env::ABSTime time;
    time.Adjust(0, timeout * 1000);
    return TimedWait(time);
}
コード例 #7
0
ファイル: ThreadPool.cpp プロジェクト: CSRedRat/CodeXL
bool Semaphore::Wait()
{
    return TimedWait(INFINITE);
}
コード例 #8
0
 bool WaitableEvent::IsSignaled()
 {
     return TimedWait(TimeDelta::FromMilliseconds(0));
 }