Glynn Clements <[EMAIL PROTECTED]> writes:

>> > The point is that the Unix documentation does not consider the short
>> > pause as data is read off your hard drive to be blocking. So that's why
>> > select will always report that data is available when you use it with a
>> > file handle.
>> 
>> Isn't this also for historic reasons?
>
> Partly.
>
> But I think that it's also because this functionality wasn't intended
> for the purpose which is being discussed, i.e. enabling a process to
> obtain maximal CPU utilisation.

I think it's also because if we considered reading from a slow file to
be blocking, we should also consider blocking many other calls which
access a disk. In particular anything which takes or returns a filename;
resolving a filename may involve reading a slow disk.

But in these cases the system doesn't know whether the programmer
really intended to do something else while mkdir() is completing,
because mkdir() is not performed on a file descriptor on which
non-blocking mode could have been set or reset.

It would need quite a different API.

-- 
   __("<         Marcin Kowalczyk
   \__/       [EMAIL PROTECTED]
    ^^     http://qrnik.knm.org.pl/~qrczak/
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to