I've determined that pthread_cond_wait works fine on an iPhone (hardware)
and works fine when called from my own module on simulator (I use
boost::condition_variable, and since it's header only and calling
pthread_cond_wait, it's my module)
But when I create a new thread, which goes through thread.cpp in the thread
library, call_once in once.hpp has to (sometimes, based on synchronization
randomness) call pthread_cond_wait which results in the message:
Detected an attempt to call a symbol in system libraries that is not
present on the iPhone:
(null) called from function _ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
in image Blackjack
If I make it continue, I get a problem report from OSX which tells me that
the stack trace is:
0 libsystem_kernel.dylib 0x903a5a6a __pthread_kill + 10
1 libsystem_c.dylib 0x96afbacf pthread_kill + 101
2 libsystem_sim_c.dylib 0x03a0457b abort + 140
3 libSystem.dylib 0x032ad4ad
_interposition_vtable_unimplemented + 200
4 libSystem.dylib 0x032c0938 pthread_cond_wait$UNIX2003 + 60
5 Blackjack 0x00277c8c void boost::call_once