]> pilppa.org Git - libplpha.git/blob - src/process_listener.c
initial version
[libplpha.git] / src / process_listener.c
1 /*
2  * process_listener.c
3  *
4  *  Created on: Sep 18, 2010
5  *      Author: lamikr
6  */
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <unistd.h>
11 #include <sys/types.h>
12 #include <sys/wait.h>
13 #include <pthread.h>
14 #include <stdbool.h>
15
16 #include "process_listener.h"
17
18 static pthread_t        _listener_thread;
19 static bool             _continue;
20
21 static void *process_listener_thread(void *thread_args_pointer)
22 {
23         int     status;
24         int     closed_pid;
25
26         while(_continue) {
27                 closed_pid      = wait(&status);
28                 if (closed_pid >= 0) {
29                         printf("process closed: %d, status: %d\n", closed_pid, status);
30                 }
31         }
32         pthread_exit(NULL);
33 }
34
35 void start_process_listener() {
36         printf("listen_closed_processes()\n");
37
38         _listener_thread        = 0;
39         _continue               = true;
40         pthread_create(&_listener_thread,
41                        NULL,
42                        process_listener_thread,
43                        (void *)NULL);
44 }
45
46 void stop_process_listener() {
47         _continue       = false;
48 //      pthread_cancel(_listener_thread);
49 //      pthread_join(_listener_thread, NULL);
50 }