From e6dbcf7336293e06028ae4a529d242bb9d89e657 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Thu, 10 Apr 2025 15:00:55 +0900 Subject: [PATCH] Attempt to fix write bug by setting pipe blocking Attempts to fix https://github.com/Stephen-Seo/SimpleArchiver/issues/6 . --- src/archiver.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/archiver.c b/src/archiver.c index 026e813..bde9317 100644 --- a/src/archiver.c +++ b/src/archiver.c @@ -6627,6 +6627,14 @@ SDArchiverStateRetStruct simple_archiver_write_v4( } } + const int existing_pipe_flags = fcntl(pipe_into_write, F_GETFL); + const int existing_pipe_flags_blocking = + existing_pipe_flags & ~O_NONBLOCK; + if (fcntl(pipe_into_write, F_SETFL, existing_pipe_flags_blocking) == -1) { + fprintf(stderr, + "ERROR: Unable to remove non-blocking on into-write-pipe!\n"); + return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR); + } simple_archiver_internal_cleanup_int_fd(&pipe_into_write); // Finish writing. -- 2.49.0