[CMake] cmake on multicore interix'en

Markus Duft markus.duft at salomon.at
Thu Feb 18 03:35:38 EST 2010


Brad King wrote:
> Markus Duft wrote:
>> Brad King wrote:
>>> Can you print out the state of signal masks?
>> how can i do that? i'm not really into that topic that much :) but i'll
>> read some man pages to figure it out.
> 
> Look at "sigprocmask" docs.

ok - this was a dead end - not a single signal is blocked. it would have
surprised me if one was, actually. but better check, right? :)

> 
>> it seems that i'm not hit by the select problem, as there is already a
>> "select has lied" path somewhere in that code path that catches exactly
>> my select() problem.
> 
> Actually, if the select() path works other than the signal pipe
> you can probably get away with a minimal hack for this platform.
> Set a SIGALRM handler that wakes up every few milliseconds and
> writes to the signal pipes just like the SIGCHLD handler does.
> This code can be kept separate from the main select loop and
> activated only for this platform.

i implemented this, by effectively doing the same as already done for
SIGCHLD (i'm also using the same signal handler function, is this a
problem?). i'm setting the alarm right after i setup the signal handler,
and unsetting it right before removing the handler again.

i set the alarm to three seconds, which i guess is a little too long,
because the process hangs quite often sitting there for two seconds -
i'll reduce that to 1 second (is this too much overhead?). however this
seems to fix the problem

so thanks for the great idea :)


so now i have two patches to make it work - which one should i prefer?
(i guess the alarm one?). i attached both FYI.

thanks for the help.

Cheers, Markus

> 
> -Brad

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cmake-2.6.4-interix-parallel.patch
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100218/0b5b3cc6/attachment.asc>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cmake-2.6.4-interix-parallel-alarm.patch
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100218/0b5b3cc6/attachment.txt>


More information about the CMake mailing list