On 26 oct. 06, at 12:47, Alexandre Julliard wrote:
I don't think polling is an acceptable way to wait for events. You really need to get a file descriptor or some other handle that you can wait on.
I am sure it isn't. But I am not sure of the proper solution. I have two ideas:
1) Change wineserver to relay on Carbon events to send (some of its) message, instead of interrupting the wine thread while waiting for a file descriptor. The wine thread could be waiting via the regular carbon run loop for an event, and the wineserver could send a carbon event as soon as the fd triggers select() end.
2) Launch a 'carbon' thread which will run the carbon run loop (which does not poll), and writes to a fd as soon as it receive events.
I think 2) may be preferred but to have a separate thread that watch event and an other that act on the UI tends to be tricky.
Pierre.