summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/forkfd/forkfd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/forkfd/forkfd.h')
-rw-r--r--src/3rdparty/forkfd/forkfd.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/3rdparty/forkfd/forkfd.h b/src/3rdparty/forkfd/forkfd.h
index fe70371719..a864b59861 100644
--- a/src/3rdparty/forkfd/forkfd.h
+++ b/src/3rdparty/forkfd/forkfd.h
@@ -38,19 +38,27 @@
extern "C" {
#endif
-#define FFD_CLOEXEC 1
-#define FFD_NONBLOCK 2
-#define FFD_USE_FORK 4
+#define FFD_CLOEXEC 1
+#define FFD_NONBLOCK 2
+#define FFD_USE_FORK 4
+#define FFD_VFORK_SEMANTICS 8
#define FFD_CHILD_PROCESS (-2)
+#define FFDW_NOHANG 1 /* WNOHANG */
+#define FFDW_NOWAIT 2 /* WNOWAIT */
+
struct forkfd_info {
int32_t code;
int32_t status;
};
int forkfd(int flags, pid_t *ppid);
-int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage);
+int forkfd_wait4(int ffd, struct forkfd_info *info, int options, struct rusage *rusage);
+static inline int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage)
+{
+ return forkfd_wait4(ffd, info, 0, rusage);
+}
int forkfd_close(int ffd);
#if _POSIX_SPAWN > 0