From 4fc040bcb794981726c20759ce6ad4aadebc3ff4 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 12 Apr 2008 16:25:13 +0200 Subject: [PATCH] Introduce sched->select_function. para_server needs this for locking. --- sched.c | 4 +++- sched.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 *); }; /** -- 2.39.2