|
From: | Jason Rumney |
Subject: | Re: How about a new pretest? |
Date: | Thu, 21 Dec 2006 10:47:31 +0000 |
User-agent: | Thunderbird 1.5.0.9 (Windows/20061207) |
Richard Stallman wrote:
I have looked at this several times myself in the past, and others have looked since and made some more progress, but it isn't as simple as it should be. The problem starts with the fact that the native select() on Windows only works for network sockets. But Emacs uses select() for subprocess I/O, so a long time ago, back when Emacs used an external program for network sockets, someone wrote a replacement for select() on w32 to handle subprocess I/O (and only subprocess I/O). Network socket support had to be added back in to this, then more recently :nowait support was added. The resulting code is difficult to understand and debug, and I'm sure if it was written from scratch to include non-blocking support for sockets, the code would look very different than it does today.I think we should try to fix these two problems now. The first one should be easy.** make-network-process :nowait t doesn't work for non-local targetson Windows.
I think this is probably the right solution for this release, unless someone who has the time and has not already tried to understand the code wants to try to fix it now. Otherwise we could look at rewriting the select implementation from scratch after the release.If it cannot be fixed, (featurep 'make-network-process '(:nowait t)) should return nil.
[Prev in Thread] | Current Thread | [Next in Thread] |