From: Andre Noll Date: Sat, 12 Apr 2008 14:25:13 +0000 (+0200) Subject: Introduce sched->select_function. X-Git-Tag: v0.3.3~80 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=4fc040bcb794981726c20759ce6ad4aadebc3ff4;p=paraslash.git Introduce sched->select_function. para_server needs this for locking. --- diff --git a/sched.c b/sched.c index 02793124..4df32fa1 100644 --- a/sched.c +++ b/sched.c @@ -105,6 +105,8 @@ int schedule(struct sched *s) if (!initialized) return -E_NOT_INITIALIZED; + if (!s->select_function) + s->select_function = para_select; gettimeofday(now, NULL); again: FD_ZERO(&s->rfds); @@ -114,7 +116,7 @@ again: sched_preselect(s); if (list_empty(&pre_select_list) && list_empty(&post_select_list)) return 0; - ret = para_select(s->max_fileno + 1, &s->rfds, &s->wfds, &s->timeout); + ret = s->select_function(s->max_fileno + 1, &s->rfds, &s->wfds, &s->timeout); if (ret < 0) return ret; gettimeofday(now, NULL); diff --git a/sched.h b/sched.h index b92aaff7..4d57c75f 100644 --- a/sched.h +++ b/sched.h @@ -27,6 +27,8 @@ struct sched { 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. */ + int (*select_function)(int, fd_set *, fd_set *, struct timeval *); }; /**