On Wed, 8 Jun 2005, William Waghorn wrote:

I've recently been trying to track down a problem where calls to
XCreateFontSet unexpectedly fail.  It turns out that while the X server
process tries to open one of the requested fonts, there's a chance that
the open call will fail with the error code EINTR when the new 'Smart
Scheduler' is enabled.

It is my understanding that code which uses timers must be prepared to
retry any system call which can return an EINTR error.

The new Smart Scheduler uses setitimer to configure a SIGALRM signal
every 20ms.  Unfortunately, looking through the source (4.5.0) it would
seem few if any calls to open() are retried after an EINTR error.  I
guess there may be other calls which need to be retried too.

Actually, that's already done in a few cases. For examples, `grep` the contents of hw/xfree86/os-support for "SYSCALL". A patch for something similar in Xserver/os and Xserver/dix would probably be accepted.

Marc.

+----------------------------------+-----------------------------------+
|  Marc Aurele La France           |  work:   1-780-492-9310           |
|  Computing and Network Services  |  fax:    1-780-492-1729           |
|  352 General Services Building   |  email:  [EMAIL PROTECTED]          |
|  University of Alberta           +-----------------------------------+
|  Edmonton, Alberta               |                                   |
|  T6G 2H1                         |     Standard disclaimers apply    |
|  CANADA                          |                                   |
+----------------------------------+-----------------------------------+
XFree86 developer and VP.  ATI driver and X server internals.
_______________________________________________
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel

Reply via email to