[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] Avoid context switch during TCP errno repo
From: |
Peter Bex |
Subject: |
Re: [Chicken-hackers] [PATCH] Avoid context switch during TCP errno reporting |
Date: |
Thu, 18 Apr 2013 00:37:53 +0200 |
User-agent: |
Mutt/1.4.2.3i |
On Wed, Mar 27, 2013 at 10:18:48PM +0100, Peter Bex wrote:
> On Tue, Mar 26, 2013 at 08:30:23PM -0400, John Cowan wrote:
> > > However, posixwindows doesn't have an implementation for file-select
> > > at all, while select() certainly is available on Windows (the scheduler
> > > uses it too, after all!).
> >
> > IIRC, the trouble with select() on Windows is that it has nothing to say
> > about fds that are associated with non-sockets, and indeed Cygwin jumps
> > through enormous hoops to make its use seamless.
>
> Thanks for the heads up, I wasn't able to find any info on this.
> This means the bit where I moved some stuff into C_check_fd_ready() is
> not going to work, and still requires duplication in tcp.scm
Sorry for posting this so late, but here goes, attached is a new version
of this patch (split in three, for convenience).
I restored the C_NONUNIX check in C_char_ready_p so that it will
return #t under Windows in all cases. (BTW: I think this name should
probably be changed to C_WINDOWS or something; e.g. Haiku isn't really
UNIX either yet it doesn't define C_NONUNIX)
I've also decided to reimplement file-select in terms of poll(), since
it's defined in posixunix.scm and all our supported UNIX variants have
defined HAVE_POSIX_POLL anyway. There are still some issues with
file-select, but none of them are new:
- It blocks the entire process
- It doesn't handle waiting for read/write on the same FD (it will return
all in the second list, but that's AFAIK undefined - it may just return
all in the first or in both lists, depending on kernel & libc in use)
- It's a pretty huge and ugly procedure
I also found a bug in its type declaration; it didn't allow for plain
fixnums or #f to be passed as either fd list. I'd be a lot happier if
we'd just deprecate file-select altogether and maybe move it to an egg.
It would be nice if someone could verify this works on Windows.
Cheers,
Peter
--
http://www.more-magic.net
0001-Replace-select-by-poll-when-available-in-char-ready-.patch
Description: Text document
0002-Fix-types-database-entry-for-file-select-to-allow-fo.patch
Description: Text document
0003-Implement-file-select-in-terms-of-POSIX-poll-for-UNI.patch
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-hackers] [PATCH] Avoid context switch during TCP errno reporting,
Peter Bex <=