|
version 1.13.2.3, 2012/08/21 12:50:08
|
version 1.16.2.1, 2013/05/26 20:14:02
|
|
Line 12 terms:
|
Line 12 terms:
|
| All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
| Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
| |
|
| Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 |
| by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
| |
|
| Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
|
Line 110 sched_hook_cancel(void *task, void *arg __unused)
|
Line 110 sched_hook_cancel(void *task, void *arg __unused)
|
| #ifdef AIO_SUPPORT |
#ifdef AIO_SUPPORT |
| struct aiocb *acb; |
struct aiocb *acb; |
| #ifdef EVFILT_LIO |
#ifdef EVFILT_LIO |
| |
register int i = 0; |
| struct aiocb **acbs; |
struct aiocb **acbs; |
| register int i; |
|
| #endif /* EVFILT_LIO */ |
#endif /* EVFILT_LIO */ |
| #endif /* AIO_SUPPORT */ |
#endif /* AIO_SUPPORT */ |
| |
|
|
Line 211 sched_hook_cancel(void *task, void *arg __unused)
|
Line 211 sched_hook_cancel(void *task, void *arg __unused)
|
| #ifdef HAVE_LIBPTHREAD |
#ifdef HAVE_LIBPTHREAD |
| pthread_cancel((pthread_t) TASK_VAL(t)); |
pthread_cancel((pthread_t) TASK_VAL(t)); |
| #endif |
#endif |
| TASK_UNLOCK(t); |
|
| default: |
default: |
| return NULL; |
return NULL; |
| } |
} |
|
Line 233 sched_hook_thread(void *task, void *arg)
|
Line 232 sched_hook_thread(void *task, void *arg)
|
| { |
{ |
| sched_task_t *t = task; |
sched_task_t *t = task; |
| pthread_t tid; |
pthread_t tid; |
| |
sigset_t s, o; |
| |
|
| if (!t || !TASK_ROOT(t)) |
if (!t || !TASK_ROOT(t)) |
| return (void*) -1; |
return (void*) -1; |
| |
|
| if (pthread_create(&tid, (pthread_attr_t*) arg, | sigfillset(&s); |
| (void *(*)(void*)) TASK_FUNC(t), t)) { | pthread_sigmask(SIG_BLOCK, &s, &o); |
| | if ((errno = pthread_create(&tid, (pthread_attr_t*) arg, |
| | (void *(*)(void*)) _sched_threadWrapper, t))) { |
| LOGERR; |
LOGERR; |
| |
pthread_sigmask(SIG_SETMASK, &o, NULL); |
| return (void*) -1; |
return (void*) -1; |
| } | } else |
| | TASK_VAL(t) = (u_long) tid; |
| |
|
| if (!TASK_ISLOCKED(t)) |
if (!TASK_ISLOCKED(t)) |
| TASK_LOCK(t); |
TASK_LOCK(t); |
| |
|
| TASK_VAL(t) = (u_long) tid; | pthread_sigmask(SIG_SETMASK, &o, NULL); |
| return NULL; |
return NULL; |
| } |
} |
| #endif |
#endif |