Subject: Re: File::Tail is broken on NetBSD -current FFS
To: Matija Grabnar <firstname.lastname@example.org>
From: Jaromir Dolecek <email@example.com>
Date: 05/18/2002 07:15:51
Thanks for information and clarification!
Matija Grabnar wrote:
> firstname.lastname@example.org 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 <jdolecek@NetBSD.org> http://www.NetBSD.org/Ports/i386/ps2.html
-=- 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.'' -=-