From f9c404510584faab71b9e9d911d9b396b0f420b0 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 12 Feb 2024 15:47:31 +0800 Subject: WORKING: add non-block flag for unix pipe. --- include/cru/common/platform/unix/UnixPipe.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/cru/common/platform/unix/UnixPipe.h b/include/cru/common/platform/unix/UnixPipe.h index 153c52bf..2ea80bde 100644 --- a/include/cru/common/platform/unix/UnixPipe.h +++ b/include/cru/common/platform/unix/UnixPipe.h @@ -5,8 +5,17 @@ #ifdef CRU_PLATFORM_UNIX #include "../../Base.h" +#include "../../Bitmask.h" namespace cru::platform::unix { +namespace details { +struct UnixPipeFlagTag; +} +using UnixPipeFlag = Bitmask; +struct UnixPipeFlags { + constexpr static auto NonBlock = UnixPipeFlag::FromOffset(1); +}; + /** * @brief an unix pipe, commonly for communication of parent process and child * process. @@ -32,7 +41,7 @@ class UnixPipe : public Object { Receive, }; - explicit UnixPipe(Usage usage); + explicit UnixPipe(Usage usage, UnixPipeFlag flags = {}); CRU_DELETE_COPY(UnixPipe) CRU_DELETE_MOVE(UnixPipe) @@ -51,6 +60,7 @@ class UnixPipe : public Object { private: Usage usage_; + UnixPipeFlag flags_; int read_fd_; int write_fd_; }; -- cgit v1.2.3