diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2006-01-31 05:05:15 +0000 | 
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2006-01-31 05:05:15 +0000 | 
| commit | cccc549ced940c85039c8ce263c8bb571f244afd (patch) | |
| tree | ef77a870db7211ad6f511867fc56ee1a1a8b4c18 /libpthread/linuxthreads/restart.h | |
| parent | e73b1211737842732951f9b9049294ef732e1ef0 (diff) | |
| download | uClibc-alpine-cccc549ced940c85039c8ce263c8bb571f244afd.tar.bz2 uClibc-alpine-cccc549ced940c85039c8ce263c8bb571f244afd.tar.xz  | |
initial import of latest linuxthreads
Diffstat (limited to 'libpthread/linuxthreads/restart.h')
| -rw-r--r-- | libpthread/linuxthreads/restart.h | 49 | 
1 files changed, 49 insertions, 0 deletions
diff --git a/libpthread/linuxthreads/restart.h b/libpthread/linuxthreads/restart.h new file mode 100644 index 000000000..24d9fab74 --- /dev/null +++ b/libpthread/linuxthreads/restart.h @@ -0,0 +1,49 @@ +/* Linuxthreads - a simple clone()-based implementation of Posix        */ +/* threads for Linux.                                                   */ +/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)              */ +/*                                                                      */ +/* This program is free software; you can redistribute it and/or        */ +/* modify it under the terms of the GNU Library General Public License  */ +/* as published by the Free Software Foundation; either version 2       */ +/* of the License, or (at your option) any later version.               */ +/*                                                                      */ +/* This program is distributed in the hope that it will be useful,      */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of       */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */ +/* GNU Library General Public License for more details.                 */ + +#include <signal.h> +#include <kernel-features.h> + +/* Primitives for controlling thread execution */ + +static inline void restart(pthread_descr th) +{ +  /* See pthread.c */ +#if __ASSUME_REALTIME_SIGNALS +  __pthread_restart_new(th); +#else +  __pthread_restart(th); +#endif +} + +static inline void suspend(pthread_descr self) +{ +  /* See pthread.c */ +#if __ASSUME_REALTIME_SIGNALS +  __pthread_wait_for_restart_signal(self); +#else +  __pthread_suspend(self); +#endif +} + +static inline int timedsuspend(pthread_descr self, +		const struct timespec *abstime) +{ +  /* See pthread.c */ +#if __ASSUME_REALTIME_SIGNALS +  return __pthread_timedsuspend_new(self, abstime); +#else +  return __pthread_timedsuspend(self, abstime); +#endif +}  | 
