summaryrefslogtreecommitdiff
path: root/src/sysexec.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sysexec.h')
-rw-r--r--src/sysexec.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/sysexec.h b/src/sysexec.h
index 783b12d..8fef3e7 100644
--- a/src/sysexec.h
+++ b/src/sysexec.h
@@ -23,6 +23,7 @@
#define DROPNROLL_sysexec_h_INCLUDED
#include <sys/types.h>
+#include <sys/time.h>
#include "options.h"
typedef enum { NEW, RUNNING, KILLED } child_state_t;
@@ -32,6 +33,7 @@ struct child_list_element_struct {
char* script_;
int err_fd_;
child_state_t state_;
+ struct timeval last_state_change_;
char** argv_;
char** evp_;
struct child_list_element_struct* next_;
@@ -50,11 +52,12 @@ child_list_element_t* child_list_add(child_list_t* list, const char* script, cha
void child_list_rm(child_list_t* list, child_list_element_t* child);
void child_list_rm_pid(child_list_t* list, pid_t pid);
child_list_element_t* child_list_find(child_list_t* list, pid_t pid);
-int child_list_num_running(child_list_t* list);
-void child_list_kill_oldest(child_list_t* list);
+int child_list_num_state(child_list_t* list, child_state_t state);
+void child_list_kill_oldest(child_list_t* list, int min_runtime);
int dnr_exec(const char* script, char* const argv[], char* const evp[], child_list_t* child_lst, options_t* opt);
int dnr_exec_child(child_list_element_t* child);
+void dnr_check_runtime(child_list_t* child_lst, options_t* opt);
int dnr_waitpid(child_list_t* child_lst, options_t* opt);
#endif