contrib/chg/procutil.h
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 12 Mar 2018 15:49:02 -0700
changeset 37007 143219fc2620
parent 31941 ac5527021097
permissions -rw-r--r--
debugcommands: introduce actions to perform deterministic reads "readavailable" is useful as a debugging device to see what data is available on a pipe. But the mechanism isn't deterministic because what's available on a pipe is highly conditional on timing, system load, OS behavior, etc. This makes it not suitable for tests. We introduce "ereadline," "read," and "eread" for performing deterministic I/O operations (at least on blocking file descriptors). We stop short of converting existing consumers of "readavailable" in tests because we're working out race conditions and deadlocks on Windows. But the goal is to eventually move tests away from "readavailable" to these new APIs. Differential Revision: https://phab.mercurial-scm.org/D2720

/*
 * Utilities about process handling - signal and subprocess (ex. pager)
 *
 * Copyright (c) 2011 Yuya Nishihara <yuya@tcha.org>
 *
 * This software may be used and distributed according to the terms of the
 * GNU General Public License version 2 or any later version.
 */

#ifndef PROCUTIL_H_
#define PROCUTIL_H_

#include <unistd.h>

void restoresignalhandler(void);
void setupsignalhandler(pid_t pid, pid_t pgid);

pid_t setuppager(const char *pagercmd, const char *envp[]);
void waitpager(void);

#endif /* PROCUTIL_H_ */