[omniORB] Omni Thread

David Hyde davidh@cavendish.co.uk
Thu, 21 Jun 2001 09:19:38 +0100


Hi,

Can anyone tell me what I am doing wrong please?  I'm building on Windows
2000 with OmniORB 3.02.

class CClass
{
	omni_condition * m_pThreadCond;
	omni_mutex * m_mtxThreadCond;
};

CClass::CClass()
{
	m_mtxThreadCond = new omni_mutex;
	m_pThreadCond = new omni_condition(m_mtxThreadCond);
}

CClass::A_Function_Running_In_A_Different_omni_thread
{
	unsigned long lAbsSec, lAbsnSec;
	omni_thread::get_time(&lAbsSec, &lAbsnSec, 5, 0);

	int n = m_pThreadCond->timedwait(lAbsSec, lAbsnSec);
}


The call to timedwait() is never returning.

In omnithread\nt.cc the call to WaitForSingleObject() is waiting for the
correct amount of time, but the call to mutex->lock() is blocking.  When
mutex->lock() is called mutex.crit.LockCount = -2 and
mutex.crit.RecursionCount = -1

Thanks for any help,

David




________________________________________________________
David Hyde
The Cavendish Organisation Ltd.        
Admiral House                       
St. Leonards Rd				Tel: +44 1753 836600 
Windsor					Fax: +44 1753 855021         
Berkshire SL4 3BL 
United Kingdom

email: davidh@cavendish.co.uk

http://www.cavendish.co.uk/ 

Confidential Information may be in this message. If you are not the intended
addressee please treat it as confidential, contact us immediately. Thank
you.
______________________________________________________________