X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=sched.h;h=e018c2fe9d0c35d2431b96967f97eb69f8ea0238;hp=86afc6fca3ed48defaaf164e929164d77a2d56fc;hb=37ae4ca0d9fb24ee2a35ac3786bcd3d8a6272535;hpb=32d43fac23025e82b7a92bfce744207c69165a04 diff --git a/sched.h b/sched.h index 86afc6fc..e018c2fe 100644 --- a/sched.h +++ b/sched.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2008 Andre Noll + * Copyright (C) 2006-2011 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -20,13 +20,15 @@ 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; + /** If non-NULL, use this function instead of para_select. */ + int (*select_function)(int, fd_set *, fd_set *, struct timeval *); }; /** @@ -61,7 +63,7 @@ struct task { /** Position of the task in the post_select list of the scheduler. */ struct list_head post_select_node; /** Descriptive text and current status of the task. */ - char status[MAXLINE]; + char status[255]; }; /** @@ -73,8 +75,11 @@ struct task { extern struct timeval *now; void register_task(struct task *t); -void unregister_task(struct task *t); int schedule(struct sched *s); char *get_task_list(void); -int kill_task(char *id); void sched_shutdown(void); +void sched_min_delay(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);