[Haskell-cafe] Re: Does readFile "/proc/mounts" hang for you?

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Fri Jan 23 03:19:49 EST 2009


On 2009 Jan 21, at 21:13, Thomas DuBuisson wrote:
> ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7ffff7470b70) = -1 ENOTTY
> (Inappropriate ioctl for device)

This is just the test for buffering:  terminal-like devices (TCGETS)  
are line buffered, others are block buffered.

> select(4, [3], [], NULL, {0, 0})        = 0 (Timeout)
> select(4, [3], [], NULL, {134, 217727} <unfinished ...>
> """
>
> I'm too rusty on any sort of low level work to draw meaning out of
> this without work, but...
>
> See that failed ioctl that seems to be completely ignored, right
> before hanging in our 'select' call?
> And see the select call that says 'wait 134 seconds'?  If you wait it
> out you get:

The ioctl() is a red herring, as stated above.  I think the real  
problem is that files in /proc are all simulated by the kernel, and  
the simulation probably doesn't work very well if they're opened non- 
blocking and select()ed on.

-- 
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH




More information about the Haskell-Cafe mailing list