Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Sep 2011 00:31:35 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Mikolaj Golub <trociny@freebsd.org>
Cc:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>, cperciva@freebsd.org, Jeremy Chadwick <freebsd@jdc.parodius.com>, Ronald Klop <ronald-freebsd8@klop.yi.org>
Subject:   Re: /usr/bin/script eating 100% cpu with portupgrade and xargs
Message-ID:  <20110918213135.GG1511@deviant.kiev.zoral.com.ua>
In-Reply-To: <86zki1d0ve.fsf@kopusha.home.net>
References:  <op.v1y8gdtf8527sy@pinky> <20110918045413.GA63773@DataIX.net> <20110918053901.GA31617@icarus.home.lan> <op.v1zrszht8527sy@pinky> <86d3eydsmf.fsf@kopusha.home.net> <op.v1z4ooot8527sy@pinky> <868vpmdq11.fsf@kopusha.home.net> <20110918172423.GB1511@deviant.kiev.zoral.com.ua> <86zki1d0ve.fsf@kopusha.home.net>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Sun, Sep 18, 2011 at 11:57:57PM +0300, Mikolaj Golub wrote:
> 
> On Sun, 18 Sep 2011 20:24:23 +0300 Kostik Belousov wrote:
> 
>  KB> On Sun, Sep 18, 2011 at 02:54:34PM +0300, Mikolaj Golub wrote:
>  >> 
>  >> On Sun, 18 Sep 2011 13:25:26 +0200 Ronald Klop wrote:
>  >> 
>  >>  RK> It is a while since I programmed C, but why will writing 0 bytes give
>  >>  RK> the reader an end-of-file? Shouldn't the fd be closed to indicate
>  >>  RK> end-of-file?
>  >> 
>  >> AFAIR, this trick with writing 0 to emulate EOF because we can't close the fd
>  >> -- we still want to read from it.  Poor shutdown(2) for non-socket :-).
>  >> 
>  >> Colin might tell more...
> 
>  KB> Please note that interpreting the receiving of 0 bytes on the terminal 
>  KB> as EOF is only a convention. If done absolutely properly, script shall
>  KB> not interpret zero-byte read as EOF. Might be, the reasonable thing to
>  KB> do would be to only look at the stdin once in a second after receiving
>  KB> zero-bytes, and switching it back to normal mode if something is read.
> 
> Ok. I see. Below is the patch that does something like this.

Looks fine for me, but I did not tested it. I would also suggest to document
this behaviour, which can cause a 1-second pause in processing of the user
input, somewhere in script(1) manpage, BUGS ?

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)

iEYEARECAAYFAk52YzcACgkQC3+MBN1Mb4jz9QCcCdazN/GUNjrcKlrhQ2eni9PK
PRgAoIhBg2xYfXfUW/zLOYlj8chpXl84
=9maL
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110918213135.GG1511>