📄 wrappthread.lc
字号:
/*## 1 ##src/lib/wrappthread.c## * pthreads wrapper functions.## 2 ##src/lib/wrappthread.c## */## 3 ##src/lib/wrappthread.c###include "unp.h"## 4 ##src/lib/wrappthread.c###include "unpthread.h"## 5 ##src/lib/wrappthread.c##void## 6 ##src/lib/wrappthread.c##Pthread_create(pthread_t * tid, const pthread_attr_t * attr,## 7 ##src/lib/wrappthread.c## void *(*func) (void *), void *arg)## 8 ##src/lib/wrappthread.c##{## 9 ##src/lib/wrappthread.c## int n;## 10 ##src/lib/wrappthread.c## if ((n = pthread_create(tid, attr, func, arg)) == 0)## 11 ##src/lib/wrappthread.c## return;## 12 ##src/lib/wrappthread.c## errno = n;## 13 ##src/lib/wrappthread.c## err_sys("pthread_create error");## 14 ##src/lib/wrappthread.c##}## 15 ##src/lib/wrappthread.c##void## 16 ##src/lib/wrappthread.c##Pthread_join(pthread_t tid, void **status)## 17 ##src/lib/wrappthread.c##{## 18 ##src/lib/wrappthread.c## int n;## 19 ##src/lib/wrappthread.c## if ((n = pthread_join(tid, status)) == 0)## 20 ##src/lib/wrappthread.c## return;## 21 ##src/lib/wrappthread.c## errno = n;## 22 ##src/lib/wrappthread.c## err_sys("pthread_join error");## 23 ##src/lib/wrappthread.c##}## 24 ##src/lib/wrappthread.c##void## 25 ##src/lib/wrappthread.c##Pthread_detach(pthread_t tid)## 26 ##src/lib/wrappthread.c##{## 27 ##src/lib/wrappthread.c## int n;## 28 ##src/lib/wrappthread.c## if ((n = pthread_detach(tid)) == 0)## 29 ##src/lib/wrappthread.c## return;## 30 ##src/lib/wrappthread.c## errno = n;## 31 ##src/lib/wrappthread.c## err_sys("pthread_detach error");## 32 ##src/lib/wrappthread.c##}## 33 ##src/lib/wrappthread.c##void## 34 ##src/lib/wrappthread.c##Pthread_kill(pthread_t tid, int signo)## 35 ##src/lib/wrappthread.c##{## 36 ##src/lib/wrappthread.c## int n;## 37 ##src/lib/wrappthread.c## if ((n = pthread_kill(tid, signo)) == 0)## 38 ##src/lib/wrappthread.c## return;## 39 ##src/lib/wrappthread.c## errno = n;## 40 ##src/lib/wrappthread.c## err_sys("pthread_kill error");## 41 ##src/lib/wrappthread.c##}## 42 ##src/lib/wrappthread.c##void## 43 ##src/lib/wrappthread.c##Pthread_mutexattr_init(pthread_mutexattr_t * attr)## 44 ##src/lib/wrappthread.c##{## 45 ##src/lib/wrappthread.c## int n;## 46 ##src/lib/wrappthread.c## if ((n = pthread_mutexattr_init(attr)) == 0)## 47 ##src/lib/wrappthread.c## return;## 48 ##src/lib/wrappthread.c## errno = n;## 49 ##src/lib/wrappthread.c## err_sys("pthread_mutexattr_init error");## 50 ##src/lib/wrappthread.c##}## 51 ##src/lib/wrappthread.c###ifdef _POSIX_THREAD_PROCESS_SHARED## 52 ##src/lib/wrappthread.c##void## 53 ##src/lib/wrappthread.c##Pthread_mutexattr_setpshared(pthread_mutexattr_t * attr, int flag)## 54 ##src/lib/wrappthread.c##{## 55 ##src/lib/wrappthread.c## int n;## 56 ##src/lib/wrappthread.c## if ((n = pthread_mutexattr_setpshared(attr, flag)) == 0)## 57 ##src/lib/wrappthread.c## return;## 58 ##src/lib/wrappthread.c## errno = n;## 59 ##src/lib/wrappthread.c## err_sys("pthread_mutexattr_setpshared error");## 60 ##src/lib/wrappthread.c##}## 61 ##src/lib/wrappthread.c###endif## 62 ##src/lib/wrappthread.c##void## 63 ##src/lib/wrappthread.c##Pthread_mutex_init(pthread_mutex_t *mptr, pthread_mutexattr_t * attr)## 64 ##src/lib/wrappthread.c##{## 65 ##src/lib/wrappthread.c## int n;## 66 ##src/lib/wrappthread.c## if ((n = pthread_mutex_init(mptr, attr)) == 0)## 67 ##src/lib/wrappthread.c## return;## 68 ##src/lib/wrappthread.c## errno = n;## 69 ##src/lib/wrappthread.c## err_sys("pthread_mutex_init error");## 70 ##src/lib/wrappthread.c##}## 71 ##src/lib/wrappthread.c##/* include Pthread_mutex_lock */void## 72 ##src/lib/wrappthread.c##Pthread_mutex_lock(pthread_mutex_t *mptr)## 73 ##src/lib/wrappthread.c##{## 74 ##src/lib/wrappthread.c## int n;## 75 ##src/lib/wrappthread.c## if ((n = pthread_mutex_lock(mptr)) == 0)## 76 ##src/lib/wrappthread.c## return;## 77 ##src/lib/wrappthread.c## errno = n;## 78 ##src/lib/wrappthread.c## err_sys("pthread_mutex_lock error");## 79 ##src/lib/wrappthread.c##}## 80 ##src/lib/wrappthread.c##/* end Pthread_mutex_lock */void## 81 ##src/lib/wrappthread.c##Pthread_mutex_unlock(pthread_mutex_t *mptr)## 82 ##src/lib/wrappthread.c##{## 83 ##src/lib/wrappthread.c## int n;## 84 ##src/lib/wrappthread.c## if ((n = pthread_mutex_unlock(mptr)) == 0)## 85 ##src/lib/wrappthread.c## return;## 86 ##src/lib/wrappthread.c## errno = n;## 87 ##src/lib/wrappthread.c## err_sys("pthread_mutex_unlock error");## 88 ##src/lib/wrappthread.c##}## 89 ##src/lib/wrappthread.c##void## 90 ##src/lib/wrappthread.c##Pthread_cond_broadcast(pthread_cond_t *cptr)## 91 ##src/lib/wrappthread.c##{## 92 ##src/lib/wrappthread.c## int n;## 93 ##src/lib/wrappthread.c## if ((n = pthread_cond_broadcast(cptr)) == 0)## 94 ##src/lib/wrappthread.c## return;## 95 ##src/lib/wrappthread.c## errno = n;## 96 ##src/lib/wrappthread.c## err_sys("pthread_cond_broadcast error");## 97 ##src/lib/wrappthread.c##}## 98 ##src/lib/wrappthread.c##void## 99 ##src/lib/wrappthread.c##Pthread_cond_signal(pthread_cond_t *cptr)##100 ##src/lib/wrappthread.c##{##101 ##src/lib/wrappthread.c## int n;##102 ##src/lib/wrappthread.c## if ((n = pthread_cond_signal(cptr)) == 0)##103 ##src/lib/wrappthread.c## return;##104 ##src/lib/wrappthread.c## errno = n;##105 ##src/lib/wrappthread.c## err_sys("pthread_cond_signal error");##106 ##src/lib/wrappthread.c##}##107 ##src/lib/wrappthread.c##void##108 ##src/lib/wrappthread.c##Pthread_cond_wait(pthread_cond_t *cptr, pthread_mutex_t *mptr)##109 ##src/lib/wrappthread.c##{##110 ##src/lib/wrappthread.c## int n;##111 ##src/lib/wrappthread.c## if ((n = pthread_cond_wait(cptr, mptr)) == 0)##112 ##src/lib/wrappthread.c## return;##113 ##src/lib/wrappthread.c## errno = n;##114 ##src/lib/wrappthread.c## err_sys("pthread_cond_wait error");##115 ##src/lib/wrappthread.c##}##116 ##src/lib/wrappthread.c##void##117 ##src/lib/wrappthread.c##Pthread_cond_timedwait(pthread_cond_t *cptr, pthread_mutex_t *mptr,##118 ##src/lib/wrappthread.c## const struct timespec *tsptr)##119 ##src/lib/wrappthread.c##{##120 ##src/lib/wrappthread.c## int n;##121 ##src/lib/wrappthread.c## if ((n = pthread_cond_timedwait(cptr, mptr, tsptr)) == 0)##122 ##src/lib/wrappthread.c## return;##123 ##src/lib/wrappthread.c## errno = n;##124 ##src/lib/wrappthread.c## err_sys("pthread_cond_timedwait error");##125 ##src/lib/wrappthread.c##}##126 ##src/lib/wrappthread.c##void##127 ##src/lib/wrappthread.c##Pthread_once(pthread_once_t * ptr, void (*func) (void))##128 ##src/lib/wrappthread.c##{##129 ##src/lib/wrappthread.c## int n;##130 ##src/lib/wrappthread.c## if ((n = pthread_once(ptr, func)) == 0)##131 ##src/lib/wrappthread.c## return;##132 ##src/lib/wrappthread.c## errno = n;##133 ##src/lib/wrappthread.c## err_sys("pthread_once error");##134 ##src/lib/wrappthread.c##}##135 ##src/lib/wrappthread.c##void##136 ##src/lib/wrappthread.c##Pthread_key_create(pthread_key_t * key, void (*func) (void *))##137 ##src/lib/wrappthread.c##{##138 ##src/lib/wrappthread.c## int n;##139 ##src/lib/wrappthread.c## if ((n = pthread_key_create(key, func)) == 0)##140 ##src/lib/wrappthread.c## return;##141 ##src/lib/wrappthread.c## errno = n;##142 ##src/lib/wrappthread.c## err_sys("pthread_key_create error");##143 ##src/lib/wrappthread.c##}##144 ##src/lib/wrappthread.c##void##145 ##src/lib/wrappthread.c##Pthread_setspecific(pthread_key_t key, const void *value)##146 ##src/lib/wrappthread.c##{##147 ##src/lib/wrappthread.c## int n;##148 ##src/lib/wrappthread.c## if ((n = pthread_setspecific(key, value)) == 0)##149 ##src/lib/wrappthread.c## return;##150 ##src/lib/wrappthread.c## errno = n;##151 ##src/lib/wrappthread.c## err_sys("pthread_setspecific error");##152 ##src/lib/wrappthread.c##}##153 ##src/lib/wrappthread.c##
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -