I am trying to port Ice 3.1.1 to QNX real time OS. It now has gcc 3.3.5 so it wasn't too hard. Everything compiles now but some tests fail.
The biggest problem is that in QNX, pthread_cond_wait() apparently cannot be used with recursive mutexes. "Recursive mutexes are non-POSIX services - they don't work with condvars."
http://www.bitctrl.de/qnx/qnx6_sysar...sarch_2a.shtml
So IceUtil::Monitor<IceUtil::Mutex> works fine but using IceUtil::Monitor<IceUtil::RecMutex> fails (an exception is thrown from line 208 of Cond.h). I wouldn't care about it in my own code, but ObjectAdapterI uses this pattern which makes it somewhat important.
I know this platform is not supported but if somebody could point me in the right direction it'd be great.
(I saw a possibly related post by Benoit from a long time ago but it talks about signalling a condvar without locking the mutex which could also be an issue. http://zeroc.com/vbulletin/showthread.php?t=69)
thanks, alex


Reply With Quote