[Tarantool-patches] [PATCH 09/13] popen: remove redundant fd check before perform IO
Alexander Turenko
alexander.turenko at tarantool.org
Fri Apr 10 05:50:47 MSK 2020
The function already checks flags to find out whether the file
descriptor should be available for reading / writing. When it is so, the
corresponding fd is great or equal to zero.
The further commits will add missed diagnostics for IO functions and it
is hard to write a meaningful error message for a situation that is not
possible. Moreover, we would obligated to document the error as one of
possible failures in a function contract (while it can't occur).
Part of #4031
---
src/lib/core/popen.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/src/lib/core/popen.c b/src/lib/core/popen.c
index 660ace0d5..c54e0b211 100644
--- a/src/lib/core/popen.c
+++ b/src/lib/core/popen.c
@@ -194,8 +194,7 @@ handle_free(struct popen_handle *handle)
* Test if the handle can run io operation.
*/
static inline bool
-popen_may_io(struct popen_handle *handle, unsigned int idx,
- unsigned int io_flags)
+popen_may_io(struct popen_handle *handle, unsigned int io_flags)
{
if (!handle) {
errno = ESRCH;
@@ -207,11 +206,6 @@ popen_may_io(struct popen_handle *handle, unsigned int idx,
return false;
}
- if (handle->ios[idx].fd < 0) {
- errno = EPIPE;
- return false;
- }
-
return true;
}
@@ -294,7 +288,7 @@ popen_write_timeout(struct popen_handle *handle, const void *buf,
return -1;
}
- if (!popen_may_io(handle, STDIN_FILENO, flags))
+ if (!popen_may_io(handle, flags))
return -1;
if (count > (size_t)SSIZE_MAX) {
@@ -329,7 +323,7 @@ popen_read_timeout(struct popen_handle *handle, void *buf,
return -1;
}
- if (!popen_may_io(handle, idx, flags))
+ if (!popen_may_io(handle, flags))
return -1;
if (count > (size_t)SSIZE_MAX) {
--
2.25.0
More information about the Tarantool-patches
mailing list