On Mon, Jan 08, 2001 at 11:12:15PM -0200, Filipe Brandenburger wrote:
> In the other way around, what matters to the design of the file i/o
> subsystem is exactly the same thing: whether it will or won't be using
> blocking syscalls. I believe after the decision of whether we will or not
> allow blocking (I think most of us go for no blocking..., but see my remark
> about portability above), the file i/o subsystem MUST be designed in a
> complete modular fashion.
This is not as simple as it may sound. In particular, the central event
dispatcher must be aware of certain details of the low-level I/O API.
On POSIX systems, this takes the form of a select loop. Since there can
be only a single select loop (barring multithreading), the portions of
the system which dispatch file events, timed events, and signals must
be aware of each other. Other systems (such as Win32) use alternate
event dispatch mechanisms.
Of course, Perl could simply demand that all platforms it is ported
to provide a POSIX-style API. This makes porting simpler, at the
expense of losing the ability to take advantage of certain
platform-specific features.
It would be interesting if people familiar with the native event-dispatch
mechanisms on non-Unix platforms were to give a brief description of them.
In particular, I'm curious about the preferred model for Win32, MacOS,
and VMS.
- Damien