2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020 Michael Wallner <mike@php.net> |
13 +--------------------------------------------------------------------+
22 enum mode { READ, WRITE };
24 ForkAndExec(const char *binary, char **argv);
27 ForkAndExec(const ForkAndExec &) = delete;
28 ForkAndExec &operator=(const ForkAndExec &) = delete;
29 ForkAndExec(ForkAndExec &&) = default;
30 ForkAndExec &operator=(ForkAndExec &&) = default;
32 [[nodiscard]] int createPipe();
36 int ready[2], pipes[2];
40 bool prepareExecReadyPipe();
41 void prepareOutputPipe();
42 void closePipe(int &fd);
43 void pollExecReadyPipe();