This bug report had two parts, the first of which was fixed (thank you, Eric). The second part involved a possible race condition and it was not determined whether a fix was necessary. The original post said:
when doing glutPostRedisplay() or setting idlecallback
or whatever in the signal handler, a race condition exists
in fgSleepForEvents() between the if and the actual select
call. pselect() and sigprocmask() can be used to avoid
the problem (if the operating system has pselect. in linux
pselect is implemented using sigprocmask & select,
but at least using it makes the problem less likely).
Richard Rauch replied:
I actually do not see how the race condition is an issue
for the library, though. I think that it is more useful to
allow the application to get signals (and make the app.
responsible for handling them sanely!). Perhaps I am missing
something? When I commented before, I was more inclined to
believe that this was a problem, but not it looks like a
non-problem to me.
Perhaps someone can enlighten me with an example that cannot
be reliable without the GLUT event loop locking out
Any updates, or shall I close the bug report?
John F. Fay