Пример #1
0
wxMutexError wxMutexInternal::TryLock()
{
    const wxMutexError rc = LockTimeout(0);

    // we have a special return code for timeout in this case
    return rc == wxMUTEX_TIMEOUT ? wxMUTEX_BUSY : rc;
}
Пример #2
0
        DeleteReports DeleteCallbackI::loop(int loops, long ms) {
            int count = 0;
            RIntPtr errors;
            while (!errors && count < loops) {
                errors = block(ms);
                count++;
            }

            if (!errors) {
                int waited = (ms/1000) * loops;
                stringstream ss;
                ss << "Delete unfinished after " << waited << "seconds.";
                throw LockTimeout("", "", ss.str(), 5000L, waited);
            } else {
                return handle->report();
            }
        };
Пример #3
0
void Mutex::lock()
{
#if defined(_WIN32) || defined(_XBOX)

#if USE_CRITICAL_SECTION
	if ( m_pMutex != NULL )
		EnterCriticalSection( (CRITICAL_SECTION *)m_pMutex );
#else
	if ( m_pMutex != NULL && WaitForSingleObject( (HANDLE)m_pMutex, MAX_LOCK_TIME ) != WAIT_OBJECT_0 )
		throw LockTimeout();
#endif

#else
	if ( m_pMutex != NULL )
		pthread_mutex_lock( &((PTMutex *)m_pMutex)->m_Mutex );
#endif
}
Пример #4
0
        omero::cmd::ResponsePtr CmdCallbackI::loop(int loops, long ms) {
            int count = 0;
            bool found = false;
            while (count < loops) {
                count++;
                found = block(ms);
                if (found) {
                    break;
                }
            }

            if (found) {
                return getResponse();
            } else {
                int waited = (ms/1000.0) * loops;
                stringstream ss;
                ss << "Cmd unfinished after " << waited << "seconds.";
                throw LockTimeout("", "", ss.str(), 5000L, waited);
            }
        };
Пример #5
0
 wxMutexError Lock(unsigned long ms) { return LockTimeout(ms); }
Пример #6
0
 wxMutexError Lock() { return LockTimeout(INFINITE); }
Пример #7
0
 wxMutexError TryLock() { return LockTimeout(0); }
Пример #8
0
 wxMutexError Lock() { return LockTimeout(SEM_INDEFINITE_WAIT); }
Пример #9
0
 wxMutexError TryLock() { return LockTimeout(SEM_IMMEDIATE_RETURN); }