X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=libfio.c;h=8af11297e17c5eed31bd3e23df72ed40c1bfab25;hb=2c3fcd7bd67209e141e259b1fdd4585e8d91167c;hp=3fde492c91af727f6d96abf39c308d3ca4b657c7;hpb=12d02717a293cdd0c85504c958f7bf57411bb30b;p=fio.git diff --git a/libfio.c b/libfio.c index 3fde492c..8af11297 100644 --- a/libfio.c +++ b/libfio.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "fio.h" #include "smalloc.h" @@ -233,6 +234,24 @@ int fio_running_or_pending_io_threads(void) return 0; } +int fio_set_fd_nonblocking(int fd, const char *who) +{ + int flags; + + flags = fcntl(fd, F_GETFL); + if (flags < 0) + log_err("fio: %s failed to get file flags: %s\n", who, strerror(errno)); + else { + int new_flags = flags | O_NONBLOCK; + + new_flags = fcntl(fd, F_SETFL, new_flags); + if (new_flags < 0) + log_err("fio: %s failed to get file flags: %s\n", who, strerror(errno)); + } + + return flags; +} + static int endian_check(void) { union {