/usr/include/wvstreams/wvfork.h is in libwvstreams-dev 4.6.1-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | /* -*- Mode: C++ -*-
* Worldvisions Weaver Software:
* Copyright (C) 1997-2002 Net Integration Technologies, Inc.
*/
/** \file
* Provides support for forking processes.
*/
#ifndef __WVFORK_H
#define __WVFORK_H
#ifndef _WIN32
#include <unistd.h>
#else
typedef int pid_t;
#endif
#include "wvscatterhash.h"
#include "wvtr1.h"
DeclareWvScatterTable(int);
typedef wv::function<void(pid_t)> WvForkCallback;
/**
* Register a callback to be called during wvfork.
* It will be called (in both parent and child process) after the fork has
* happened but before wvfork returns. It is passed the return value of the
* fork.
*
* NOTE: There is no way to undo this operation!
*/
extern void add_wvfork_callback(WvForkCallback cb);
/**
* wvfork_start is just like fork, except that it will block the
* parent until the child process closes the waitfd, to avoid race
* conditions.
*
* For example, wvfork uses it, closing the waitfd only when it is
* done closing the close-on-exec file descriptors.
*/
extern pid_t wvfork_start(int *waitfd);
/**
* wvfork() just runs fork(), but it closes all file descriptors that
* are flagged close-on-exec, since we don't necessarily always run
* exec() after we fork()...
*
* This fixes the year-old mystery bug where WvTapeBackup caused
* watchdog reboots because the CHILD process wasn't touching it, and
* it was already open before the fork()...
*/
extern pid_t wvfork(int dontclose1 = -1, int dontclose2 = -1);
extern pid_t wvfork(intTable &dontclose );
#endif
|