On Tue, Jul 22, 2003 at 11:41:25PM -0400, Dan Sugalski wrote: > First, to get it out of the way, I don't have to convince you of > anything. You have to convince me. For better or worse I'm > responsible for the design and its ultimately my decision. If you > don't want async IO, it's time to make a very, very good case.
I hope that I haven't given the impression that I feel otherwise. You're the designer, and Parrot is your baby. I'm just expressing my opinion; you are of course completely free to disagree with me. Let me restate my position, since I think it's getting lost in the general confusion: I'd be happy if Parrot contained no support at all for interrupts, in particular the traditional interrupt-based delivery of Unix signals. I think that support for interrupts will come at a cost, and I'd prefer not to have to pay that cost. I've expounded at length in an earlier message on why I think interrupts in application-level code is generally a bad idea. I won't bother repeating myself here; I don't think I said anything particularly controversial there. I'm not arguing against non-blocking IO, event loops, a unified event queue, or internally using the aio_*() API on Unix. I think that all of these things are Nifty(tm) and I highly approve of all of them. I /am/ arguing against exposing the aio_*() API (or its equivalent) to code running atop the Parrot VM, on the grounds that it uses interrupts as a part of the API. I'd rather just have non-blocking IO calls and a good event queue. On a somewhat related note, I'm dubious about the performance gains that code using interrupt-driven IO will see as opposed to code using event-loop driven IO. I /think/ you're telling me that I'm wrong, and that interrupt-driven IO does indeed have performance benefits; it's possible that you're actually telling me that event-loop driven code with non-blocking IO has performance benefits as compared to threaded code with blocking IO. If it's the latter, then we are in violent agreement. :> - Damien