X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcschedule.c;h=4084371e9a76dd11573a7c851aa661ab33d5e23c;hb=7910ce2a5c55211a4ea09a52832c6ed32c0b64fd;hp=1672fdffa716eec336194bb3748d8acc296bc15f;hpb=751b3b46d4acc38c2c35366706f5472c05ce3655;p=silc.git diff --git a/lib/silcutil/silcschedule.c b/lib/silcutil/silcschedule.c index 1672fdff..4084371e 100644 --- a/lib/silcutil/silcschedule.c +++ b/lib/silcutil/silcschedule.c @@ -250,6 +250,20 @@ bool silc_schedule_uninit(SilcSchedule schedule) return TRUE; } +/* Enlarge the capabilities of the scheduler to handle tasks to `max_tasks'. */ + +bool silc_schedule_reinit(SilcSchedule schedule, int max_tasks) +{ + silc_mutex_lock(schedule->lock); + if (schedule->max_fd <= max_tasks) + return FALSE; + schedule->fd_list = silc_realloc(schedule->fd_list, + (sizeof(*schedule->fd_list) * max_tasks)); + schedule->max_fd = max_tasks; + silc_mutex_unlock(schedule->lock); + return TRUE; +} + /* Stops the schedule even if it is not supposed to be stopped yet. After calling this, one should call silc_schedule_uninit (after the silc_schedule has returned). */