101
101
#define THREAD_CHILD_STATUS(X) ((X)->u.c.status)
103
103
/* global vars exported */
104
extern thread_master *master;
104
extern thread_master_t *master;
106
106
/* Prototypes. */
107
extern thread_master *thread_make_master(void);
108
extern thread *thread_add_terminate_event(thread_master * m);
109
extern void thread_destroy_master(thread_master * m);
110
extern thread *thread_add_read(thread_master * m, int (*func) (thread *)
111
, void *arg, int fd, long timeout);
112
extern thread *thread_add_write(thread_master * m, int (*func) (thread *)
113
, void *arg, int fd, long timeout);
114
extern thread *thread_add_timer(thread_master * m, int (*func) (thread *)
115
, void *arg, long timer);
116
extern thread *thread_add_child(thread_master * m, int (*func) (thread *)
117
, void *arg, pid_t pid, long timeout);
118
extern thread *thread_add_event(thread_master * m, int (*func) (thread *)
119
, void *arg, int val);
120
extern void thread_cancel(thread * thread_obj);
121
extern void thread_cancel_event(thread_master * m, void *arg);
122
extern thread *thread_fetch(thread_master * m, thread * fetch);
123
extern void thread_child_handler(void * v, int sig);
124
extern void thread_call(thread * thread_obj);
107
extern thread_master_t *thread_make_master(void);
108
extern thread_t *thread_add_terminate_event(thread_master_t *);
109
extern void thread_destroy_master(thread_master_t *);
110
extern thread_t *thread_add_read(thread_master_t *, int (*func) (thread_t *), void *, int, long);
111
extern thread_t *thread_add_write(thread_master_t *, int (*func) (thread_t *), void *, int, long);
112
extern thread_t *thread_add_timer(thread_master_t *, int (*func) (thread_t *), void *, long);
113
extern thread_t *thread_add_child(thread_master_t *, int (*func) (thread_t *), void *, pid_t, long);
114
extern thread_t *thread_add_event(thread_master_t *, int (*func) (thread_t *), void *, int);
115
extern void thread_cancel(thread_t *);
116
extern void thread_cancel_event(thread_master_t *, void *);
117
extern thread_t *thread_fetch(thread_master_t *, thread_t *);
118
extern void thread_child_handler(void *, int);
119
extern void thread_call(thread_t *);
125
120
extern void launch_scheduler(void);