All pastes #250452 Raw Edit

Untitled

public text v1 · immutable
#250452 ·published 2006-11-16 23:46 UTC
rendered paste body
public XEvent DequeueUnlocked (out bool paint)
{
	paint = false;
try_again:
	XEvent xev = xqueue.Dequeue ();
	if (xev != null)
		return xev;

	xev = paint_queue.Dequeue ();
	if (xev != null) {
		paint = true;
		return xev;
	}

	// both queues are empty.  go to sleep until NextTimeout
	// (or until there's an event to handle).

	if (Monitor.Wait (xqueue, NextTimeout (DateTime.UtcNow), true)) {
		/* the lock was reaquired before timeout.
		   i.e. we have an event now */
		goto try_again;
	}
	else
		return null;
}