|
Boost : |
From: u (js_at_[hidden])
Date: 2003-11-10 10:15:59
Hi,
we're using in our software extensive use of parsers based on spirits parsers.
These parsers are declared as global objects, so we use them in a thread-safe
manner by declaring BOOST_SPIRIT_THREADSAFE and PHOENIX_THREADSAFE. Works
perfect on Linux.
But not on Mac (OS 10.the.latest)) :( The program doesn't even start. In the
function
tss::tss(void (*cleanup)(void*))
{
int res = 0;
res = pthread_key_create(&m_key, cleanup);
if (res != 0)
throw thread_resource_error();
}
the pthread_key_create segfaults after the 128th constructor (thread limits on
Mac). Note: at program start! There's only one thread running... We don't
have more than 128 parsers (or maybe we do without knowing ;)
This limit of 128 won't be changed by Mac in the next time (years?), so we
have to find a way to avoid the construction of that amount of pthread_keys.
But how?
I would thank for any hint,
Jorge :)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk