--- libaitsched/src/tasks.c 2013/08/27 01:27:33 1.21.2.1 +++ libaitsched/src/tasks.c 2014/01/28 13:17:33 1.23 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: tasks.c,v 1.21.2.1 2013/08/27 01:27:33 misho Exp $ +* $Id: tasks.c,v 1.23 2014/01/28 13:17:33 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 +Copyright 2004 - 2014 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -138,7 +138,6 @@ _sched_threadWrapper(sched_task_t *t) /* notify parent, thread is ready for execution */ pthread_testcancel(); -// ret = TASK_FUNC(t)(t); ret = schedCall(t); pthread_cleanup_pop(42); @@ -324,6 +323,10 @@ sched_task_t * schedNode(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else sched_task_t *task; void *ptr; @@ -361,6 +364,7 @@ schedNode(sched_root_task_t * __restrict root, sched_t task = sched_unuseTask(task); return task; +#endif /* KQ_DISABLE */ } /* @@ -378,6 +382,10 @@ sched_task_t * schedProc(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, u_long pid, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else sched_task_t *task; void *ptr; @@ -415,6 +423,7 @@ schedProc(sched_root_task_t * __restrict root, sched_t task = sched_unuseTask(task); return task; +#endif /* KQ_DISABLE */ } /* @@ -432,6 +441,10 @@ sched_task_t * schedUser(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, u_long id, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else #ifndef EVFILT_USER sched_SetErr(ENOTSUP, "Not supported kevent() filter"); return NULL; @@ -473,7 +486,8 @@ schedUser(sched_root_task_t * __restrict root, sched_t task = sched_unuseTask(task); return task; -#endif +#endif /* EVFILT_USER */ +#endif /* KQ_DISABLE */ } /* @@ -491,6 +505,10 @@ sched_task_t * schedSignal(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, u_long sig, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else sched_task_t *task; void *ptr; @@ -528,6 +546,7 @@ schedSignal(sched_root_task_t * __restrict root, sched task = sched_unuseTask(task); return task; +#endif /* KQ_DISABLE */ } /* @@ -545,6 +564,10 @@ sched_task_t * schedAlarm(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, struct timespec ts, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else sched_task_t *task; void *ptr; @@ -582,6 +605,7 @@ schedAlarm(sched_root_task_t * __restrict root, sched_ task = sched_unuseTask(task); return task; +#endif /* KQ_DISABLE */ } #ifdef AIO_SUPPORT @@ -600,6 +624,10 @@ sched_task_t * schedAIO(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, struct aiocb * __restrict acb, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else sched_task_t *task; void *ptr; @@ -637,6 +665,7 @@ schedAIO(sched_root_task_t * __restrict root, sched_ta task = sched_unuseTask(task); return task; +#endif /* KQ_DISABLE */ } /* @@ -655,6 +684,10 @@ sched_task_t * schedAIORead(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd, void *buffer, size_t buflen, off_t offset) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else struct aiocb *acb; off_t off; @@ -691,6 +724,7 @@ schedAIORead(sched_root_task_t * __restrict root, sche } return schedAIO(root, func, arg, acb, buffer, buflen); +#endif /* KQ_DISABLE */ } /* @@ -709,6 +743,10 @@ sched_task_t * schedAIOWrite(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd, void *buffer, size_t buflen, off_t offset) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else struct aiocb *acb; off_t off; @@ -745,6 +783,7 @@ schedAIOWrite(sched_root_task_t * __restrict root, sch } return schedAIO(root, func, arg, acb, buffer, buflen); +#endif /* KQ_DISABLE */ } #ifdef EVFILT_LIO @@ -763,6 +802,10 @@ sched_task_t * schedLIO(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, struct aiocb ** __restrict acbs, void *opt_data, size_t opt_dlen) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else sched_task_t *task; void *ptr; @@ -800,6 +843,7 @@ schedLIO(sched_root_task_t * __restrict root, sched_ta task = sched_unuseTask(task); return task; +#endif /* KQ_DISABLE */ } /* @@ -818,6 +862,10 @@ sched_task_t * schedLIORead(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd, struct iovec *bufs, size_t nbufs, off_t offset) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else struct sigevent sig; struct aiocb **acb; off_t off; @@ -872,6 +920,7 @@ schedLIORead(sched_root_task_t * __restrict root, sche } return schedLIO(root, func, arg, (void*) acb, bufs, nbufs); +#endif /* KQ_DISABLE */ } /* @@ -890,6 +939,10 @@ sched_task_t * schedLIOWrite(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd, struct iovec *bufs, size_t nbufs, off_t offset) { +#ifdef KQ_DISABLE + sched_SetErr(ENOTSUP, "disabled kqueue support"); + return NULL; +#else struct sigevent sig; struct aiocb **acb; off_t off; @@ -944,6 +997,7 @@ schedLIOWrite(sched_root_task_t * __restrict root, sch } return schedLIO(root, func, arg, (void*) acb, bufs, nbufs); +#endif /* KQ_DISABLE */ } #endif /* EVFILT_LIO */ #endif /* AIO_SUPPORT */