| 80 | } |
| 81 | |
| 82 | std::optional<TokenPipe> TokenPipe::Make() |
| 83 | { |
| 84 | int fds[2] = {-1, -1}; |
| 85 | #if HAVE_O_CLOEXEC && HAVE_DECL_PIPE2 |
| 86 | if (pipe2(fds, O_CLOEXEC) != 0) { |
| 87 | return std::nullopt; |
| 88 | } |
| 89 | #else |
| 90 | if (pipe(fds) != 0) { |
| 91 | return std::nullopt; |
| 92 | } |
| 93 | #endif |
| 94 | return TokenPipe(fds); |
| 95 | } |
| 96 | |
| 97 | TokenPipe::~TokenPipe() |
| 98 | { |