Subject: Re: File::Tail is broken on NetBSD -current FFS
To: Matija Grabnar <>
From: Jaromir Dolecek <>
List: current-users
Date: 05/18/2002 07:15:51
Thanks for information and clarification!


Matija Grabnar wrote:
> said:
> > It _seems_ like that code uses select() on the descriptor. However,
> > select() on NetBSD (and I believe all *BSD*) returns immediatelly for
> > regular files. The semantics for regular files might be different on
> > Linux or Solaris. 
> No, no, NO! File::Tail does NOT do a select on file. It **PROVIDES**
> a select that works on file, but DOES NOT rely on the operating system 
> to provide a select that works like that. In fact, I don't know of 
> any operating system where select works on ordinary files.
> The "eats all CPU" bug usualy comes from problems with Time::HiRes.
> File::Tail relies on Time::HiRes to provide a version of sleep that
> takes fractional seconds (so that sleep(0.25) will sleep for a quarter of 
> a second). Unfortunately, if Time::HiRes has a problems, that means that
> the system sleep is called, and in most implementations, sleep for less 
> than one second does NO sleep at all - leading to busy waiting on the 
> file, which is exactly the thing that File::Tail tries to avoid. 
> Please, doublecheck that Time::HiRes is correctly installed and 
> correctly exports the sub-second sleep, so that sleep (0.1), sleep (0.2)
> etc do the *right thing* and don't return immediately.
> I suppose I will have to recode File::Tail to explicitly call usleep,
> so that if Time::HiRes doesn't load correctly, at least File::Tail
> will fail instead of appearing to be written by an incompetent.
> Best regards,
>          Matija Grabnar
> -- 
> "My name is Not Important. Not to friends. 
>     But you can call me mr. Important"  - Not J. Important 

Jaromir Dolecek <>
-=- We should be mindful of the potential goal, but as the tantric    -=-
-=- Buddhist masters say, ``You may notice during meditation that you -=-
-=- sometimes levitate or glow.   Do not let this distract you.''     -=-