view contrib/chg/procutil.h @ 43394:d359dfc15aca stable

fsmonitor: handle unicode keys in tuples In Python 3, keys in the bset tuple are typically str, not bytes. PyBytes_AsString() would return NULL. But we weren't checking the return value and this would lead to a segfault. This commit makes the code type and Python version aware. The Python version specific code is to allow us to utilize a modern API for converting str -> char* without having to allocate an extra PyObject. FWIW I wanted to assume that keys were always str. However, there appear to be some bytes keys in some cases. I haven't debugged this further. Differential Revision: https://phab.mercurial-scm.org/D7210
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 02 Nov 2019 14:17:48 -0700
parents ac5527021097
children
line wrap: on
line source

/*
 * 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_ */