less: move "retry-on-EAGAIN" logic closer to read ops
This makes "G" (goto end of input) command work as well as /search_for_nonexistent_string: both will read to EOF now even from somewhat slow input (such as kernel's "git log"). function old new delta ndelay_on 35 43 +8 ndelay_off 35 43 +8 read_lines 695 691 -4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/1 up/down: 16/-4) Total: 12 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -25,20 +25,22 @@
|
||||
#include "libbb.h"
|
||||
|
||||
/* Turn on nonblocking I/O on a fd */
|
||||
void FAST_FUNC ndelay_on(int fd)
|
||||
int FAST_FUNC ndelay_on(int fd)
|
||||
{
|
||||
int flags = fcntl(fd, F_GETFL);
|
||||
if (flags & O_NONBLOCK)
|
||||
return;
|
||||
return flags;
|
||||
fcntl(fd, F_SETFL, flags | O_NONBLOCK);
|
||||
return flags;
|
||||
}
|
||||
|
||||
void FAST_FUNC ndelay_off(int fd)
|
||||
int FAST_FUNC ndelay_off(int fd)
|
||||
{
|
||||
int flags = fcntl(fd, F_GETFL);
|
||||
if (!(flags & O_NONBLOCK))
|
||||
return;
|
||||
return flags;
|
||||
fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);
|
||||
return flags;
|
||||
}
|
||||
|
||||
void FAST_FUNC close_on_exec_on(int fd)
|
||||
|
Reference in New Issue
Block a user