
On Tue, Jul 17, 2007 at 06:19:13PM -0500, Spencer Janssen wrote:
On Tuesday 17 July 2007 13:43:23 Andrea Rossato wrote:
BTW, I've been thinking about it, and I do not see any other possible solution for the specific problem of blocking a thread and resuming it in two different cases: an event *or* the elapsed time. You need the real event or another thread that sends a fake event. Am I right?
It is possible, but annoying. It requires a magic version of nextEvent that doesn't block inside foreign calls. Thankfully, this isn't so hard to write with threadWaitRead and XPending. With this magic nextEvent, we can use asynchronous exceptions to interrupt the thread with a timer. I've sent you a patch that implements this.
Hi, I'm finishing the tutorial I talked about, and when writing the XEvent part (the last one), I found out that XCopyArea will produce a NoExpose event. If I sync the output buffer with False (that is to say, without discarding the events from queue), I can intercept it in the recursive loop without the need of nextEvent' and asynchronous exceptions... Now I'm even more puzzled... ;-) Andrea