blob: f6fc03350a8289ce9ec595573ebea2ebe4b56f72 [file] [log] [blame]
/* Copyright (c) 2016 Google Inc.
* Barret Rhoden <brho@cs.berkeley.edu>
* See LICENSE for details.
*
* fork() callbacks. See sys/fork_cb.h. */
#include <sys/fork_cb.h>
#include <ros/common.h>
void (*pre_fork_2ls)(void);
void (*post_fork_2ls)(pid_t ret);
struct fork_cb *fork_callbacks;
void register_fork_cb(struct fork_cb *cb)
{
struct fork_cb *old;
do {
old = ACCESS_ONCE(fork_callbacks);
cb->next = old;
} while (!__sync_bool_compare_and_swap(&fork_callbacks, old, cb));
}