Revoking previous change. It differs from the handling of F_GETFL failure.
So O_NONBLOCK is intended to be nice to have but not mandatory.
This commit is contained in:
parent
e8b94e7b50
commit
6047464b6b
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009 - 2015 Thomas Schmitt
|
||||
* Copyright (c) 2009 - 2011 Thomas Schmitt
|
||||
*
|
||||
* This file is part of the libisofs project; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2
|
||||
@ -243,34 +243,25 @@ int extf_stream_open_flag(IsoStream *stream, int flag)
|
||||
ret= ISO_FILE_READ_ERROR;
|
||||
*/
|
||||
|
||||
if (ret < 0)
|
||||
goto dispose_pipe_and_child;
|
||||
if (ret < 0) {
|
||||
/* Dispose pipes and child */
|
||||
extf_stream_close_flag(stream, 1);
|
||||
return ret;
|
||||
}
|
||||
stream_open = 1;
|
||||
/* Make filter outlet non-blocking */
|
||||
ret = fcntl(recv_pipe[0], F_GETFL);
|
||||
if (ret != -1) {
|
||||
ret |= O_NONBLOCK;
|
||||
ret = fcntl(recv_pipe[0], F_SETFL, ret);
|
||||
if (ret == -1) {
|
||||
ret = ISO_FILE_ERROR;
|
||||
goto dispose_pipe_and_child;
|
||||
}
|
||||
fcntl(recv_pipe[0], F_SETFL, ret);
|
||||
}
|
||||
/* Make filter sink non-blocking */
|
||||
ret = fcntl(send_pipe[1], F_GETFL);
|
||||
if (ret != -1) {
|
||||
ret |= O_NONBLOCK;
|
||||
ret = fcntl(send_pipe[1], F_SETFL, ret);
|
||||
if (ret == -1) {
|
||||
ret = ISO_FILE_ERROR;
|
||||
goto dispose_pipe_and_child;
|
||||
}
|
||||
fcntl(send_pipe[1], F_SETFL, ret);
|
||||
}
|
||||
return 1;
|
||||
|
||||
dispose_pipe_and_child:;
|
||||
extf_stream_close_flag(stream, 1);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* child */
|
||||
|
Loading…
Reference in New Issue
Block a user