Re: Problem : can't make pipe non-blocking on 2.5.X

OGAWA Hirofumi (hirofumi@mail.parknet.co.jp)
Thu, 15 Aug 2002 06:46:18 +0900


Jean Tourrilhes <jt@bougret.hpl.hp.com> writes:

> Hi,
>
> I've got the following problem : I can't make a pipe
> non-blocking with 2.5.25.
> The various man pages don't mention anything
> about it (actually, the "fifo" man page say that non-blocking mode
> should succeed). And it seems to work fine on 2.4.20.
> Sorry if this has already been reported and fixed, but I
> quicly searched the changelog and archive and found nothing.
>
> So, who should I complain to ?
>

[...]

> err = fcntl(trigger_pipe[0], F_GETFL, &flags);

F_GETFL should be,
flags = fcntl(trigger_pipe[0], F_GETFL, 0);

> fprintf(stderr, "GET FLAGS : %d - %X\n", err, flags);
> if(err >= 0)
> {
> flags |= O_NONBLOCK;
> err = fcntl(trigger_pipe[0], F_SETFL, flags);
> fprintf(stderr, "SET FLAGS : %d - %d\n", err, errno);
> }
> return(0);
> }
> ------------- Output 2.5.25 ----------------
> GET FLAGS : 0 - 40045F18
> SET FLAGS : -1 - 22
> ------------- Output 2.4.20-pre2 -----------
> GET FLAGS : 0 - 40043F18
> SET FLAGS : 0 - 0
> --------------------------------------------

Looks like effect of different implement of O_DIRECT(0x40000).
Thanks.

-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/