X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=sched.h;h=49c1c085d9e09c4d847ce3002ab641c7a265689a;hp=7681567be31534e3ef98af3dc19f16f0958290d7;hb=d0d27cfa56d05eaa0e5567c75adfe606eab2957e;hpb=e90440367f744a7723b201a95888e66f070ffa92;ds=sidebyside diff --git a/sched.h b/sched.h index 7681567b..49c1c085 100644 --- a/sched.h +++ b/sched.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2010 Andre Noll + * Copyright (C) 2006-2012 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -20,15 +20,19 @@ struct sched { /** Initial value before any pre_select call. */ struct timeval default_timeout; /** The current timeout for the upcoming select call. */ - struct timeval timeout; + struct timeval select_timeout; /** fds that should be watched for readability. */ fd_set rfds; /** fds that should be watched for writability. */ fd_set wfds; /** Highest numbered file descriptor in any of the above fd sets. */ int max_fileno; - /** In non-NULL, use this function instead of para_select. */ + /** If non-NULL, use this function instead of para_select. */ int (*select_function)(int, fd_set *, fd_set *, struct timeval *); + /** Currently active pre_select functions. */ + struct list_head pre_select_list; + /** Currently active post_select functions. */ + struct list_head post_select_list; }; /** @@ -74,13 +78,12 @@ struct task { */ extern struct timeval *now; -void register_task(struct task *t); +void register_task(struct sched *s, struct task *t); int schedule(struct sched *s); -char *get_task_list(void); -int kill_task(char *id); -void sched_shutdown(void); +char *get_task_list(struct sched *s); +void sched_shutdown(struct sched *s); void sched_min_delay(struct sched *s); -void sched_request_timeout(struct timeval *timeout, struct sched *s); +void sched_request_timeout(struct timeval *to, struct sched *s); void sched_request_timeout_ms(long unsigned ms, struct sched *s); -void sched_request_barrier(struct timeval *barrier, struct sched *s); -void sched_request_barrier_or_min_delay(struct timeval *barrier, struct sched *s); +int sched_request_barrier(struct timeval *barrier, struct sched *s); +int sched_request_barrier_or_min_delay(struct timeval *barrier, struct sched *s);