ede/evoke/Spawn.h
Sanel Zukan 6170d43d19 Reworked process handler due a large number of races. Now process reports
should not interfere with popped up message boxes. Still there is a issue
with childs during splash startup: when one of them crashes with core dump
crash dialog will not be shown, but the main process handler correctly returns crash flag.
2007-09-24 11:47:42 +00:00

42 lines
1.2 KiB
C

/*
* $Id$
*
* Evoke, head honcho of everything
* Part of Equinox Desktop Environment (EDE).
* Copyright (c) 2000-2007 EDE Authors.
*
* This program is licensed under terms of the
* GNU General Public License version 2 or newer.
* See COPYING for details.
*/
#ifndef __SPAWN_H__
#define __SPAWN_H__
#include <unistd.h> // pid_t
/*
* This is little bit modified code from edelib run_program()
* so evoke specific stuff can be added. Also, possible option
* is that edelib run_program(), at some time, consult evoke
* for running programs.
*/
#define SPAWN_OK 0
#define SPAWN_FORK_FAILED 1
#define SPAWN_EMPTY 2
#define SPAWN_EXECVE_FAILED 3
#define SPAWN_OPEN_FAILED 4
#define SPAWN_PIPE_FAILED 5
#define SPAWN_CHILD_CRASHED -2
#define SPAWN_CHILD_KILLED -3
typedef void (SignalWatch)(int pid, int status);
int spawn_program(const char* cmd, SignalWatch* wf = 0, pid_t* child_pid_ret = 0, const char* ofile = 0);
int spawn_program_with_core(const char* cmd, SignalWatch* wf = 0, pid_t* child_pid_ret = 0);
int spawn_backtrace(const char* gdb_path, const char* program, const char* core, const char* output, const char* script);
#endif