Implement CLONE_FILES compat layer with rfork
[lttng-tools.git] / src / common / compat / clone.h
index 45eb37982c225c9551fe10b3f3f8ba909092a8e4..08aa10dcd199a0431845bc0a279fc9b4b30896f8 100644 (file)
 
 #include <sched.h>
 
+static inline
+int lttng_clone_files(int (*fn)(void *), void *child_stack, void *arg)
+{
+       return clone(fn, child_stack, CLONE_FILES | SIGCHLD, arg);
+}
+
 #elif __FreeBSD__
 
 #include <unistd.h>
 
-#define CLONE_FILES 0
-
-#define clone(fct_ptr, child_stack, flags, arg, args...) \
-       compat_clone(fct_ptr, child_stack, flags, arg)
-
-int compat_clone(int (*fn)(void *), void *child_stack, int flags,
-               void *arg)
+static inline
+int lttng_clone_files(int (*fn)(void *), void *child_stack, void *arg)
 {
-       return -ENOSYS;
+       return rfork(RFPROC | RFTHREAD);
 }
 
 #else
This page took 0.023828 seconds and 4 git commands to generate.