[Mono-list] Problems with reads being non-blocking in Mono?

Juli Mallett jmallett@FreeBSD.ORG
Thu, 12 Dec 2002 18:42:34 -0800


One way or another it seems like on FreeBSD Mono sets STDIN_FILENO to be
non-blocking, and so Console.ReadLine() fails, since EAGAIN isn't handled,
and the following program simply blows up:

(jmallett@luna:~/Work/Jwpl#)286% mcs test.cs
Compilation succeeded
(jmallett@luna:~/Work/Jwpl#)287% mono test.exe

Unhandled Exception: System.IO.IOException: I/O Error
in <0x0007a> 00 System.IO.FileStream:ReadData (intptr,byte[],int,int)
in <0x000f2> 00 System.IO.FileStream:Read (byte[],int,int)
in <0x00127> 00 System.IO.StreamReader:ReadBuffer ()
in <0x00088> 00 System.IO.StreamReader:Read ()
in <0x00049> 00 System.IO.StreamReader:ReadLine ()
in <0x00018> 00 .X:Main ()

(jmallett@luna:~/Work/Jwpl#)288% cat test.cs
using System; class X { public static void Main() { Console.ReadLine(); } }

This doesn't happen on GNU/Linux or with Mono 0.13 on FreeBSD, afaict.

Juli Mallett <jmallett@FreeBSD.org>
OpenDarwin, Mono, FreeBSD Developer.
ircd-hybrid Developer, EFnet addict.
FreeBSD on MIPS-Anything on FreeBSD.