noderb 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +19 -0
- data/README.md +25 -0
- data/ext/noderb_extension/extconf.rb +11 -0
- data/ext/noderb_extension/libuv/AUTHORS +11 -0
- data/ext/noderb_extension/libuv/LICENSE +48 -0
- data/ext/noderb_extension/libuv/Makefile +119 -0
- data/ext/noderb_extension/libuv/README +45 -0
- data/ext/noderb_extension/libuv/build/all.gyp +254 -0
- data/ext/noderb_extension/libuv/build/common.gypi +13 -0
- data/ext/noderb_extension/libuv/build/gyp_uv +43 -0
- data/ext/noderb_extension/libuv/config-mingw.mk +67 -0
- data/ext/noderb_extension/libuv/config-unix.mk +121 -0
- data/ext/noderb_extension/libuv/create-msvs-files.bat +14 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ANNOUNCE +482 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/BUGS +141 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/Bmakefile +268 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/CONTRIBUTORS +140 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/COPYING +150 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/COPYING.LIB +504 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ChangeLog +5194 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/FAQ +451 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/GNUmakefile +593 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/MAINTAINERS +4 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/Makefile +516 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/NEWS +1245 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/Nmakefile +24 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/Nmakefile.tests +260 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/PROGRESS +4 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/README +601 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.Borland +57 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.CV +3036 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.NONPORTABLE +783 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.Watcom +62 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.WinCE +6 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/TODO +7 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/WinCE-PORT +222 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/attr.c +53 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/autostatic.c +69 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/barrier.c +47 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/build/all.gyp +207 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/builddmc.bat +9 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/cancel.c +44 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/cleanup.c +148 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/condvar.c +50 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/config.h +153 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/context.h +74 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/create.c +308 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/dll.c +92 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/errno.c +94 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/exit.c +44 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/fork.c +39 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/global.c +107 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/implement.h +944 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/misc.c +50 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/mutex.c +62 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/need_errno.h +145 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/nonportable.c +47 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/private.c +54 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.c +66 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.dsp +142 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.dsw +29 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.h +1368 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_destroy.c +79 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getdetachstate.c +86 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getinheritsched.c +51 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getschedparam.c +52 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getschedpolicy.c +61 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getscope.c +54 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getstackaddr.c +97 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getstacksize.c +100 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_init.c +117 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setdetachstate.c +91 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setinheritsched.c +57 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setschedparam.c +63 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setschedpolicy.c +55 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setscope.c +62 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setstackaddr.c +97 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setstacksize.c +110 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_destroy.c +103 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_init.c +69 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_wait.c +104 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_destroy.c +83 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_getpshared.c +95 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_init.c +85 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_setpshared.c +119 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cancel.c +189 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_destroy.c +253 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_init.c +167 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_signal.c +231 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_wait.c +567 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_destroy.c +86 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_getpshared.c +97 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_init.c +87 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_setpshared.c +117 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_delay_np.c +172 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_detach.c +136 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_equal.c +76 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_exit.c +106 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getconcurrency.c +45 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getschedparam.c +75 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getspecific.c +87 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getunique_np.c +47 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getw32threadhandle_np.c +65 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_join.c +157 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_key_create.c +108 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_key_delete.c +125 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_kill.c +105 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_consistent.c +187 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_destroy.c +148 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_init.c +130 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_lock.c +269 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_timedlock.c +324 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_trylock.c +154 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_unlock.c +175 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_destroy.c +83 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getkind_np.c +44 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getpshared.c +95 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getrobust.c +113 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_gettype.c +56 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_init.c +86 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setkind_np.c +44 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setpshared.c +119 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setrobust.c +119 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_settype.c +143 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_num_processors_np.c +56 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_once.c +79 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_destroy.c +143 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_init.c +109 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_rdlock.c +102 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_timedrdlock.c +109 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_timedwrlock.c +139 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_tryrdlock.c +102 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_trywrlock.c +122 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_unlock.c +93 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_wrlock.c +133 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_destroy.c +84 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_getpshared.c +97 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_init.c +83 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_setpshared.c +120 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_self.c +141 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setcancelstate.c +125 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setcanceltype.c +126 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setconcurrency.c +53 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setschedparam.c +123 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setspecific.c +167 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_destroy.c +111 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_init.c +123 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_lock.c +80 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_trylock.c +77 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_unlock.c +71 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_testcancel.c +103 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_timechange_handler_np.c +108 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_win32_attach_detach_np.c +258 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_MCS_lock.c +278 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_callUserDestroyRoutines.c +232 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_calloc.c +56 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_cond_check_need_init.c +78 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_getprocessors.c +91 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_is_attr.c +47 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_mutex_check_need_init.c +92 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_new.c +94 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_processInitialize.c +92 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_processTerminate.c +105 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_relmillisecs.c +132 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_reuse.c +151 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_rwlock_cancelwrwait.c +50 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_rwlock_check_need_init.c +77 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_semwait.c +135 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_spinlock_check_need_init.c +78 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_threadDestroy.c +79 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_threadStart.c +357 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_throw.c +189 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_timespec.c +83 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_tkAssocCreate.c +118 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_tkAssocDestroy.c +114 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/rwlock.c +51 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched.c +53 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched.h +183 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_get_priority_max.c +134 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_get_priority_min.c +135 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_getscheduler.c +71 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_setscheduler.c +83 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_yield.c +71 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_close.c +58 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_destroy.c +144 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_getvalue.c +110 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_init.c +169 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_open.c +58 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_post.c +128 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_post_multiple.c +142 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_timedwait.c +238 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_trywait.c +117 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_unlink.c +58 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_wait.c +187 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/semaphore.c +69 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/semaphore.h +169 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/signal.c +179 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/spin.c +46 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/sync.c +43 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/tsd.c +44 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/version.rc +388 -0
- data/ext/noderb_extension/libuv/deps/pthread-win32/w32_CancelableWait.c +161 -0
- data/ext/noderb_extension/libuv/doc/desired-api.md +159 -0
- data/ext/noderb_extension/libuv/doc/iocp-links.html +574 -0
- data/ext/noderb_extension/libuv/include/ares.h +582 -0
- data/ext/noderb_extension/libuv/include/ares_version.h +24 -0
- data/ext/noderb_extension/libuv/include/eio.h +376 -0
- data/ext/noderb_extension/libuv/include/ev.h +835 -0
- data/ext/noderb_extension/libuv/include/ngx-queue.h +102 -0
- data/ext/noderb_extension/libuv/include/tree.h +762 -0
- data/ext/noderb_extension/libuv/include/uv-unix.h +138 -0
- data/ext/noderb_extension/libuv/include/uv-win.h +187 -0
- data/ext/noderb_extension/libuv/include/uv.h +635 -0
- data/ext/noderb_extension/libuv/src/ares/AUTHORS +37 -0
- data/ext/noderb_extension/libuv/src/ares/CHANGES +1198 -0
- data/ext/noderb_extension/libuv/src/ares/CMakeLists.txt +22 -0
- data/ext/noderb_extension/libuv/src/ares/NEWS +21 -0
- data/ext/noderb_extension/libuv/src/ares/README +60 -0
- data/ext/noderb_extension/libuv/src/ares/README.cares +13 -0
- data/ext/noderb_extension/libuv/src/ares/README.msvc +118 -0
- data/ext/noderb_extension/libuv/src/ares/README.node +21 -0
- data/ext/noderb_extension/libuv/src/ares/RELEASE-NOTES +25 -0
- data/ext/noderb_extension/libuv/src/ares/TODO +23 -0
- data/ext/noderb_extension/libuv/src/ares/ares__close_sockets.c +66 -0
- data/ext/noderb_extension/libuv/src/ares/ares__get_hostent.c +263 -0
- data/ext/noderb_extension/libuv/src/ares/ares__read_line.c +71 -0
- data/ext/noderb_extension/libuv/src/ares/ares__timeval.c +111 -0
- data/ext/noderb_extension/libuv/src/ares/ares_cancel.c +63 -0
- data/ext/noderb_extension/libuv/src/ares/ares_data.c +190 -0
- data/ext/noderb_extension/libuv/src/ares/ares_data.h +65 -0
- data/ext/noderb_extension/libuv/src/ares/ares_destroy.c +105 -0
- data/ext/noderb_extension/libuv/src/ares/ares_dns.h +90 -0
- data/ext/noderb_extension/libuv/src/ares/ares_expand_name.c +193 -0
- data/ext/noderb_extension/libuv/src/ares/ares_expand_string.c +75 -0
- data/ext/noderb_extension/libuv/src/ares/ares_fds.c +62 -0
- data/ext/noderb_extension/libuv/src/ares/ares_free_hostent.c +39 -0
- data/ext/noderb_extension/libuv/src/ares/ares_free_string.c +25 -0
- data/ext/noderb_extension/libuv/src/ares/ares_gethostbyaddr.c +292 -0
- data/ext/noderb_extension/libuv/src/ares/ares_gethostbyname.c +515 -0
- data/ext/noderb_extension/libuv/src/ares/ares_getnameinfo.c +426 -0
- data/ext/noderb_extension/libuv/src/ares/ares_getopt.c +122 -0
- data/ext/noderb_extension/libuv/src/ares/ares_getopt.h +53 -0
- data/ext/noderb_extension/libuv/src/ares/ares_getsock.c +72 -0
- data/ext/noderb_extension/libuv/src/ares/ares_init.c +1665 -0
- data/ext/noderb_extension/libuv/src/ares/ares_ipv6.h +78 -0
- data/ext/noderb_extension/libuv/src/ares/ares_library_init.c +132 -0
- data/ext/noderb_extension/libuv/src/ares/ares_library_init.h +39 -0
- data/ext/noderb_extension/libuv/src/ares/ares_llist.c +86 -0
- data/ext/noderb_extension/libuv/src/ares/ares_llist.h +42 -0
- data/ext/noderb_extension/libuv/src/ares/ares_mkquery.c +195 -0
- data/ext/noderb_extension/libuv/src/ares/ares_nowarn.c +59 -0
- data/ext/noderb_extension/libuv/src/ares/ares_nowarn.h +24 -0
- data/ext/noderb_extension/libuv/src/ares/ares_options.c +253 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_a_reply.c +260 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_aaaa_reply.c +256 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_mx_reply.c +170 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_ns_reply.c +182 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_ptr_reply.c +208 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_srv_reply.c +179 -0
- data/ext/noderb_extension/libuv/src/ares/ares_parse_txt_reply.c +201 -0
- data/ext/noderb_extension/libuv/src/ares/ares_private.h +351 -0
- data/ext/noderb_extension/libuv/src/ares/ares_process.c +1296 -0
- data/ext/noderb_extension/libuv/src/ares/ares_query.c +183 -0
- data/ext/noderb_extension/libuv/src/ares/ares_rules.h +144 -0
- data/ext/noderb_extension/libuv/src/ares/ares_search.c +322 -0
- data/ext/noderb_extension/libuv/src/ares/ares_send.c +134 -0
- data/ext/noderb_extension/libuv/src/ares/ares_setup.h +191 -0
- data/ext/noderb_extension/libuv/src/ares/ares_strcasecmp.c +66 -0
- data/ext/noderb_extension/libuv/src/ares/ares_strcasecmp.h +30 -0
- data/ext/noderb_extension/libuv/src/ares/ares_strdup.c +42 -0
- data/ext/noderb_extension/libuv/src/ares/ares_strdup.h +26 -0
- data/ext/noderb_extension/libuv/src/ares/ares_strerror.c +56 -0
- data/ext/noderb_extension/libuv/src/ares/ares_timeout.c +80 -0
- data/ext/noderb_extension/libuv/src/ares/ares_version.c +11 -0
- data/ext/noderb_extension/libuv/src/ares/ares_writev.c +79 -0
- data/ext/noderb_extension/libuv/src/ares/ares_writev.h +36 -0
- data/ext/noderb_extension/libuv/src/ares/bitncmp.c +59 -0
- data/ext/noderb_extension/libuv/src/ares/bitncmp.h +26 -0
- data/ext/noderb_extension/libuv/src/ares/config_cygwin/ares_config.h +510 -0
- data/ext/noderb_extension/libuv/src/ares/config_darwin/ares_config.h +510 -0
- data/ext/noderb_extension/libuv/src/ares/config_freebsd/ares_config.h +510 -0
- data/ext/noderb_extension/libuv/src/ares/config_linux/ares_config.h +510 -0
- data/ext/noderb_extension/libuv/src/ares/config_openbsd/ares_config.h +510 -0
- data/ext/noderb_extension/libuv/src/ares/config_sunos/ares_config.h +510 -0
- data/ext/noderb_extension/libuv/src/ares/config_win32/ares_config.h +369 -0
- data/ext/noderb_extension/libuv/src/ares/get_ver.awk +35 -0
- data/ext/noderb_extension/libuv/src/ares/inet_net_pton.c +450 -0
- data/ext/noderb_extension/libuv/src/ares/inet_net_pton.h +31 -0
- data/ext/noderb_extension/libuv/src/ares/inet_ntop.c +232 -0
- data/ext/noderb_extension/libuv/src/ares/inet_ntop.h +27 -0
- data/ext/noderb_extension/libuv/src/ares/nameser.h +193 -0
- data/ext/noderb_extension/libuv/src/ares/setup_once.h +488 -0
- data/ext/noderb_extension/libuv/src/ares/windows_port.c +22 -0
- data/ext/noderb_extension/libuv/src/eio/Changes +63 -0
- data/ext/noderb_extension/libuv/src/eio/LICENSE +36 -0
- data/ext/noderb_extension/libuv/src/eio/Makefile.am +15 -0
- data/ext/noderb_extension/libuv/src/eio/aclocal.m4 +8957 -0
- data/ext/noderb_extension/libuv/src/eio/autogen.sh +3 -0
- data/ext/noderb_extension/libuv/src/eio/config.h.in +86 -0
- data/ext/noderb_extension/libuv/src/eio/config_cygwin.h +77 -0
- data/ext/noderb_extension/libuv/src/eio/config_darwin.h +137 -0
- data/ext/noderb_extension/libuv/src/eio/config_freebsd.h +78 -0
- data/ext/noderb_extension/libuv/src/eio/config_linux.h +101 -0
- data/ext/noderb_extension/libuv/src/eio/config_sunos.h +81 -0
- data/ext/noderb_extension/libuv/src/eio/configure.ac +22 -0
- data/ext/noderb_extension/libuv/src/eio/demo.c +194 -0
- data/ext/noderb_extension/libuv/src/eio/ecb.h +370 -0
- data/ext/noderb_extension/libuv/src/eio/eio.3 +3428 -0
- data/ext/noderb_extension/libuv/src/eio/eio.c +2562 -0
- data/ext/noderb_extension/libuv/src/eio/eio.pod +969 -0
- data/ext/noderb_extension/libuv/src/eio/libeio.m4 +195 -0
- data/ext/noderb_extension/libuv/src/eio/xthread.h +164 -0
- data/ext/noderb_extension/libuv/src/ev/Changes +388 -0
- data/ext/noderb_extension/libuv/src/ev/LICENSE +36 -0
- data/ext/noderb_extension/libuv/src/ev/Makefile.am +18 -0
- data/ext/noderb_extension/libuv/src/ev/Makefile.in +771 -0
- data/ext/noderb_extension/libuv/src/ev/README +58 -0
- data/ext/noderb_extension/libuv/src/ev/aclocal.m4 +8957 -0
- data/ext/noderb_extension/libuv/src/ev/autogen.sh +6 -0
- data/ext/noderb_extension/libuv/src/ev/config.guess +1526 -0
- data/ext/noderb_extension/libuv/src/ev/config.h.in +125 -0
- data/ext/noderb_extension/libuv/src/ev/config.sub +1658 -0
- data/ext/noderb_extension/libuv/src/ev/config_cygwin.h +123 -0
- data/ext/noderb_extension/libuv/src/ev/config_darwin.h +122 -0
- data/ext/noderb_extension/libuv/src/ev/config_freebsd.h +120 -0
- data/ext/noderb_extension/libuv/src/ev/config_linux.h +130 -0
- data/ext/noderb_extension/libuv/src/ev/config_sunos.h +122 -0
- data/ext/noderb_extension/libuv/src/ev/configure +13037 -0
- data/ext/noderb_extension/libuv/src/ev/configure.ac +18 -0
- data/ext/noderb_extension/libuv/src/ev/depcomp +630 -0
- data/ext/noderb_extension/libuv/src/ev/ev++.h +816 -0
- data/ext/noderb_extension/libuv/src/ev/ev.3 +5311 -0
- data/ext/noderb_extension/libuv/src/ev/ev.c +3913 -0
- data/ext/noderb_extension/libuv/src/ev/ev.pod +5243 -0
- data/ext/noderb_extension/libuv/src/ev/ev_epoll.c +266 -0
- data/ext/noderb_extension/libuv/src/ev/ev_kqueue.c +198 -0
- data/ext/noderb_extension/libuv/src/ev/ev_poll.c +148 -0
- data/ext/noderb_extension/libuv/src/ev/ev_port.c +179 -0
- data/ext/noderb_extension/libuv/src/ev/ev_select.c +310 -0
- data/ext/noderb_extension/libuv/src/ev/ev_vars.h +203 -0
- data/ext/noderb_extension/libuv/src/ev/ev_win32.c +153 -0
- data/ext/noderb_extension/libuv/src/ev/ev_wrap.h +196 -0
- data/ext/noderb_extension/libuv/src/ev/event.c +402 -0
- data/ext/noderb_extension/libuv/src/ev/event.h +170 -0
- data/ext/noderb_extension/libuv/src/ev/install-sh +294 -0
- data/ext/noderb_extension/libuv/src/ev/libev.m4 +39 -0
- data/ext/noderb_extension/libuv/src/ev/ltmain.sh +8413 -0
- data/ext/noderb_extension/libuv/src/ev/missing +336 -0
- data/ext/noderb_extension/libuv/src/ev/mkinstalldirs +111 -0
- data/ext/noderb_extension/libuv/src/uv-common.c +172 -0
- data/ext/noderb_extension/libuv/src/uv-common.h +53 -0
- data/ext/noderb_extension/libuv/src/uv-cygwin.c +52 -0
- data/ext/noderb_extension/libuv/src/uv-darwin.c +64 -0
- data/ext/noderb_extension/libuv/src/uv-eio.c +113 -0
- data/ext/noderb_extension/libuv/src/uv-eio.h +13 -0
- data/ext/noderb_extension/libuv/src/uv-freebsd.c +65 -0
- data/ext/noderb_extension/libuv/src/uv-linux.c +51 -0
- data/ext/noderb_extension/libuv/src/uv-sunos.c +60 -0
- data/ext/noderb_extension/libuv/src/uv-unix.c +2408 -0
- data/ext/noderb_extension/libuv/src/win/async.c +129 -0
- data/ext/noderb_extension/libuv/src/win/cares.c +304 -0
- data/ext/noderb_extension/libuv/src/win/core.c +155 -0
- data/ext/noderb_extension/libuv/src/win/error.c +140 -0
- data/ext/noderb_extension/libuv/src/win/getaddrinfo.c +341 -0
- data/ext/noderb_extension/libuv/src/win/handle.c +176 -0
- data/ext/noderb_extension/libuv/src/win/internal.h +237 -0
- data/ext/noderb_extension/libuv/src/win/loop-watcher.c +128 -0
- data/ext/noderb_extension/libuv/src/win/pipe.c +828 -0
- data/ext/noderb_extension/libuv/src/win/process.c +936 -0
- data/ext/noderb_extension/libuv/src/win/req.c +141 -0
- data/ext/noderb_extension/libuv/src/win/stdio.c +75 -0
- data/ext/noderb_extension/libuv/src/win/stream.c +149 -0
- data/ext/noderb_extension/libuv/src/win/tcp.c +895 -0
- data/ext/noderb_extension/libuv/src/win/timer.c +269 -0
- data/ext/noderb_extension/libuv/src/win/util.c +82 -0
- data/ext/noderb_extension/libuv/test/benchmark-ares.c +117 -0
- data/ext/noderb_extension/libuv/test/benchmark-getaddrinfo.c +90 -0
- data/ext/noderb_extension/libuv/test/benchmark-list.h +77 -0
- data/ext/noderb_extension/libuv/test/benchmark-ping-pongs.c +210 -0
- data/ext/noderb_extension/libuv/test/benchmark-pound.c +237 -0
- data/ext/noderb_extension/libuv/test/benchmark-pump.c +459 -0
- data/ext/noderb_extension/libuv/test/benchmark-sizes.c +39 -0
- data/ext/noderb_extension/libuv/test/benchmark-spawn.c +154 -0
- data/ext/noderb_extension/libuv/test/dns-server.c +323 -0
- data/ext/noderb_extension/libuv/test/echo-server.c +299 -0
- data/ext/noderb_extension/libuv/test/run-benchmarks.c +64 -0
- data/ext/noderb_extension/libuv/test/run-tests.c +82 -0
- data/ext/noderb_extension/libuv/test/runner-unix.c +335 -0
- data/ext/noderb_extension/libuv/test/runner-unix.h +36 -0
- data/ext/noderb_extension/libuv/test/runner-win.c +343 -0
- data/ext/noderb_extension/libuv/test/runner-win.h +42 -0
- data/ext/noderb_extension/libuv/test/runner.c +311 -0
- data/ext/noderb_extension/libuv/test/runner.h +155 -0
- data/ext/noderb_extension/libuv/test/task.h +111 -0
- data/ext/noderb_extension/libuv/test/test-async.c +218 -0
- data/ext/noderb_extension/libuv/test/test-callback-stack.c +205 -0
- data/ext/noderb_extension/libuv/test/test-connection-fail.c +149 -0
- data/ext/noderb_extension/libuv/test/test-delayed-accept.c +198 -0
- data/ext/noderb_extension/libuv/test/test-fail-always.c +29 -0
- data/ext/noderb_extension/libuv/test/test-get-currentexe.c +53 -0
- data/ext/noderb_extension/libuv/test/test-getaddrinfo.c +110 -0
- data/ext/noderb_extension/libuv/test/test-gethostbyname.c +192 -0
- data/ext/noderb_extension/libuv/test/test-getsockname.c +196 -0
- data/ext/noderb_extension/libuv/test/test-hrtime.c +51 -0
- data/ext/noderb_extension/libuv/test/test-idle.c +83 -0
- data/ext/noderb_extension/libuv/test/test-list.h +165 -0
- data/ext/noderb_extension/libuv/test/test-loop-handles.c +361 -0
- data/ext/noderb_extension/libuv/test/test-pass-always.c +28 -0
- data/ext/noderb_extension/libuv/test/test-ping-pong.c +256 -0
- data/ext/noderb_extension/libuv/test/test-pipe-bind-error.c +148 -0
- data/ext/noderb_extension/libuv/test/test-ref.c +91 -0
- data/ext/noderb_extension/libuv/test/test-shutdown-eof.c +183 -0
- data/ext/noderb_extension/libuv/test/test-spawn.c +345 -0
- data/ext/noderb_extension/libuv/test/test-tcp-bind-error.c +204 -0
- data/ext/noderb_extension/libuv/test/test-tcp-bind6-error.c +164 -0
- data/ext/noderb_extension/libuv/test/test-tcp-writealot.c +198 -0
- data/ext/noderb_extension/libuv/test/test-timer-again.c +141 -0
- data/ext/noderb_extension/libuv/test/test-timer.c +134 -0
- data/ext/noderb_extension/noderb.c +340 -0
- data/ext/noderb_extension/noderb.h +2 -0
- data/lib/noderb/connection.rb +21 -0
- data/lib/noderb/process.rb +17 -0
- data/lib/noderb.rb +25 -0
- metadata +470 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* sched_get_priority_min.c
|
|
3
|
+
*
|
|
4
|
+
* Description:
|
|
5
|
+
* POSIX thread functions that deal with thread scheduling.
|
|
6
|
+
*
|
|
7
|
+
* --------------------------------------------------------------------------
|
|
8
|
+
*
|
|
9
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
10
|
+
* Copyright(C) 1998 John E. Bossom
|
|
11
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
12
|
+
*
|
|
13
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
14
|
+
*
|
|
15
|
+
* The current list of contributors is contained
|
|
16
|
+
* in the file CONTRIBUTORS included with the source
|
|
17
|
+
* code distribution. The list can also be seen at the
|
|
18
|
+
* following World Wide Web location:
|
|
19
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
20
|
+
*
|
|
21
|
+
* This library is free software; you can redistribute it and/or
|
|
22
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
23
|
+
* License as published by the Free Software Foundation; either
|
|
24
|
+
* version 2 of the License, or (at your option) any later version.
|
|
25
|
+
*
|
|
26
|
+
* This library is distributed in the hope that it will be useful,
|
|
27
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
29
|
+
* Lesser General Public License for more details.
|
|
30
|
+
*
|
|
31
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
32
|
+
* License along with this library in the file COPYING.LIB;
|
|
33
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
34
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#include "pthread.h"
|
|
38
|
+
#include "implement.h"
|
|
39
|
+
#include "sched.h"
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
* On Windows98, THREAD_PRIORITY_LOWEST is (-2) and
|
|
43
|
+
* THREAD_PRIORITY_HIGHEST is 2, and everything works just fine.
|
|
44
|
+
*
|
|
45
|
+
* On WinCE 3.0, it so happen that THREAD_PRIORITY_LOWEST is 5
|
|
46
|
+
* and THREAD_PRIORITY_HIGHEST is 1 (yes, I know, it is funny:
|
|
47
|
+
* highest priority use smaller numbers) and the following happens:
|
|
48
|
+
*
|
|
49
|
+
* sched_get_priority_min() returns 5
|
|
50
|
+
* sched_get_priority_max() returns 1
|
|
51
|
+
*
|
|
52
|
+
* The following table shows the base priority levels for combinations
|
|
53
|
+
* of priority class and priority value in Win32.
|
|
54
|
+
*
|
|
55
|
+
* Process Priority Class Thread Priority Level
|
|
56
|
+
* -----------------------------------------------------------------
|
|
57
|
+
* 1 IDLE_PRIORITY_CLASS THREAD_PRIORITY_IDLE
|
|
58
|
+
* 1 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_IDLE
|
|
59
|
+
* 1 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_IDLE
|
|
60
|
+
* 1 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_IDLE
|
|
61
|
+
* 1 HIGH_PRIORITY_CLASS THREAD_PRIORITY_IDLE
|
|
62
|
+
* 2 IDLE_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
63
|
+
* 3 IDLE_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
64
|
+
* 4 IDLE_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
65
|
+
* 4 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
66
|
+
* 5 IDLE_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
67
|
+
* 5 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
68
|
+
* 5 Background NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
69
|
+
* 6 IDLE_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
70
|
+
* 6 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
71
|
+
* 6 Background NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
72
|
+
* 7 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
73
|
+
* 7 Background NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
74
|
+
* 7 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
75
|
+
* 8 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
76
|
+
* 8 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
77
|
+
* 8 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
78
|
+
* 8 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
79
|
+
* 9 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
80
|
+
* 9 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
81
|
+
* 9 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
82
|
+
* 10 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
83
|
+
* 10 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
84
|
+
* 11 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
85
|
+
* 11 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
86
|
+
* 11 HIGH_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
87
|
+
* 12 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
88
|
+
* 12 HIGH_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
89
|
+
* 13 HIGH_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
90
|
+
* 14 HIGH_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
91
|
+
* 15 HIGH_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
92
|
+
* 15 HIGH_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
|
|
93
|
+
* 15 IDLE_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
|
|
94
|
+
* 15 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
|
|
95
|
+
* 15 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
|
|
96
|
+
* 15 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
|
|
97
|
+
* 16 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_IDLE
|
|
98
|
+
* 17 REALTIME_PRIORITY_CLASS -7
|
|
99
|
+
* 18 REALTIME_PRIORITY_CLASS -6
|
|
100
|
+
* 19 REALTIME_PRIORITY_CLASS -5
|
|
101
|
+
* 20 REALTIME_PRIORITY_CLASS -4
|
|
102
|
+
* 21 REALTIME_PRIORITY_CLASS -3
|
|
103
|
+
* 22 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
|
|
104
|
+
* 23 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
|
|
105
|
+
* 24 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
|
|
106
|
+
* 25 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
|
|
107
|
+
* 26 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
|
|
108
|
+
* 27 REALTIME_PRIORITY_CLASS 3
|
|
109
|
+
* 28 REALTIME_PRIORITY_CLASS 4
|
|
110
|
+
* 29 REALTIME_PRIORITY_CLASS 5
|
|
111
|
+
* 30 REALTIME_PRIORITY_CLASS 6
|
|
112
|
+
* 31 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
|
|
113
|
+
*
|
|
114
|
+
* Windows NT: Values -7, -6, -5, -4, -3, 3, 4, 5, and 6 are not supported.
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
int
|
|
120
|
+
sched_get_priority_min (int policy)
|
|
121
|
+
{
|
|
122
|
+
if (policy < SCHED_MIN || policy > SCHED_MAX)
|
|
123
|
+
{
|
|
124
|
+
errno = EINVAL;
|
|
125
|
+
return -1;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
#if (THREAD_PRIORITY_LOWEST > THREAD_PRIORITY_NORMAL)
|
|
129
|
+
/* WinCE? */
|
|
130
|
+
return PTW32_MIN (THREAD_PRIORITY_IDLE, THREAD_PRIORITY_TIME_CRITICAL);
|
|
131
|
+
#else
|
|
132
|
+
/* This is independent of scheduling policy in Win32. */
|
|
133
|
+
return PTW32_MIN (THREAD_PRIORITY_IDLE, THREAD_PRIORITY_TIME_CRITICAL);
|
|
134
|
+
#endif
|
|
135
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* sched_getscheduler.c
|
|
3
|
+
*
|
|
4
|
+
* Description:
|
|
5
|
+
* POSIX thread functions that deal with thread scheduling.
|
|
6
|
+
*
|
|
7
|
+
* --------------------------------------------------------------------------
|
|
8
|
+
*
|
|
9
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
10
|
+
* Copyright(C) 1998 John E. Bossom
|
|
11
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
12
|
+
*
|
|
13
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
14
|
+
*
|
|
15
|
+
* The current list of contributors is contained
|
|
16
|
+
* in the file CONTRIBUTORS included with the source
|
|
17
|
+
* code distribution. The list can also be seen at the
|
|
18
|
+
* following World Wide Web location:
|
|
19
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
20
|
+
*
|
|
21
|
+
* This library is free software; you can redistribute it and/or
|
|
22
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
23
|
+
* License as published by the Free Software Foundation; either
|
|
24
|
+
* version 2 of the License, or (at your option) any later version.
|
|
25
|
+
*
|
|
26
|
+
* This library is distributed in the hope that it will be useful,
|
|
27
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
29
|
+
* Lesser General Public License for more details.
|
|
30
|
+
*
|
|
31
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
32
|
+
* License along with this library in the file COPYING.LIB;
|
|
33
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
34
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#include "pthread.h"
|
|
38
|
+
#include "implement.h"
|
|
39
|
+
#include "sched.h"
|
|
40
|
+
|
|
41
|
+
int
|
|
42
|
+
sched_getscheduler (pid_t pid)
|
|
43
|
+
{
|
|
44
|
+
/*
|
|
45
|
+
* Win32 only has one policy which we call SCHED_OTHER.
|
|
46
|
+
* However, we try to provide other valid side-effects
|
|
47
|
+
* such as EPERM and ESRCH errors.
|
|
48
|
+
*/
|
|
49
|
+
if (0 != pid)
|
|
50
|
+
{
|
|
51
|
+
int selfPid = (int) GetCurrentProcessId ();
|
|
52
|
+
|
|
53
|
+
if (pid != selfPid)
|
|
54
|
+
{
|
|
55
|
+
HANDLE h =
|
|
56
|
+
OpenProcess (PROCESS_QUERY_INFORMATION, PTW32_FALSE, (DWORD) pid);
|
|
57
|
+
|
|
58
|
+
if (NULL == h)
|
|
59
|
+
{
|
|
60
|
+
errno =
|
|
61
|
+
(GetLastError () ==
|
|
62
|
+
(0xFF & ERROR_ACCESS_DENIED)) ? EPERM : ESRCH;
|
|
63
|
+
return -1;
|
|
64
|
+
}
|
|
65
|
+
else
|
|
66
|
+
CloseHandle(h);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return SCHED_OTHER;
|
|
71
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* sched_setscheduler.c
|
|
3
|
+
*
|
|
4
|
+
* Description:
|
|
5
|
+
* POSIX thread functions that deal with thread scheduling.
|
|
6
|
+
*
|
|
7
|
+
* --------------------------------------------------------------------------
|
|
8
|
+
*
|
|
9
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
10
|
+
* Copyright(C) 1998 John E. Bossom
|
|
11
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
12
|
+
*
|
|
13
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
14
|
+
*
|
|
15
|
+
* The current list of contributors is contained
|
|
16
|
+
* in the file CONTRIBUTORS included with the source
|
|
17
|
+
* code distribution. The list can also be seen at the
|
|
18
|
+
* following World Wide Web location:
|
|
19
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
20
|
+
*
|
|
21
|
+
* This library is free software; you can redistribute it and/or
|
|
22
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
23
|
+
* License as published by the Free Software Foundation; either
|
|
24
|
+
* version 2 of the License, or (at your option) any later version.
|
|
25
|
+
*
|
|
26
|
+
* This library is distributed in the hope that it will be useful,
|
|
27
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
29
|
+
* Lesser General Public License for more details.
|
|
30
|
+
*
|
|
31
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
32
|
+
* License along with this library in the file COPYING.LIB;
|
|
33
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
34
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#include "pthread.h"
|
|
38
|
+
#include "implement.h"
|
|
39
|
+
#include "sched.h"
|
|
40
|
+
|
|
41
|
+
int
|
|
42
|
+
sched_setscheduler (pid_t pid, int policy)
|
|
43
|
+
{
|
|
44
|
+
/*
|
|
45
|
+
* Win32 only has one policy which we call SCHED_OTHER.
|
|
46
|
+
* However, we try to provide other valid side-effects
|
|
47
|
+
* such as EPERM and ESRCH errors. Choosing to check
|
|
48
|
+
* for a valid policy last allows us to get the most value out
|
|
49
|
+
* of this function.
|
|
50
|
+
*/
|
|
51
|
+
if (0 != pid)
|
|
52
|
+
{
|
|
53
|
+
int selfPid = (int) GetCurrentProcessId ();
|
|
54
|
+
|
|
55
|
+
if (pid != selfPid)
|
|
56
|
+
{
|
|
57
|
+
HANDLE h =
|
|
58
|
+
OpenProcess (PROCESS_SET_INFORMATION, PTW32_FALSE, (DWORD) pid);
|
|
59
|
+
|
|
60
|
+
if (NULL == h)
|
|
61
|
+
{
|
|
62
|
+
errno =
|
|
63
|
+
(GetLastError () ==
|
|
64
|
+
(0xFF & ERROR_ACCESS_DENIED)) ? EPERM : ESRCH;
|
|
65
|
+
return -1;
|
|
66
|
+
}
|
|
67
|
+
else
|
|
68
|
+
CloseHandle(h);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (SCHED_OTHER != policy)
|
|
73
|
+
{
|
|
74
|
+
errno = ENOSYS;
|
|
75
|
+
return -1;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/*
|
|
79
|
+
* Don't set anything because there is nothing to set.
|
|
80
|
+
* Just return the current (the only possible) value.
|
|
81
|
+
*/
|
|
82
|
+
return SCHED_OTHER;
|
|
83
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* sched_yield.c
|
|
3
|
+
*
|
|
4
|
+
* Description:
|
|
5
|
+
* POSIX thread functions that deal with thread scheduling.
|
|
6
|
+
*
|
|
7
|
+
* --------------------------------------------------------------------------
|
|
8
|
+
*
|
|
9
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
10
|
+
* Copyright(C) 1998 John E. Bossom
|
|
11
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
12
|
+
*
|
|
13
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
14
|
+
*
|
|
15
|
+
* The current list of contributors is contained
|
|
16
|
+
* in the file CONTRIBUTORS included with the source
|
|
17
|
+
* code distribution. The list can also be seen at the
|
|
18
|
+
* following World Wide Web location:
|
|
19
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
20
|
+
*
|
|
21
|
+
* This library is free software; you can redistribute it and/or
|
|
22
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
23
|
+
* License as published by the Free Software Foundation; either
|
|
24
|
+
* version 2 of the License, or (at your option) any later version.
|
|
25
|
+
*
|
|
26
|
+
* This library is distributed in the hope that it will be useful,
|
|
27
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
28
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
29
|
+
* Lesser General Public License for more details.
|
|
30
|
+
*
|
|
31
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
32
|
+
* License along with this library in the file COPYING.LIB;
|
|
33
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
34
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#include "pthread.h"
|
|
38
|
+
#include "implement.h"
|
|
39
|
+
#include "sched.h"
|
|
40
|
+
|
|
41
|
+
int
|
|
42
|
+
sched_yield (void)
|
|
43
|
+
/*
|
|
44
|
+
* ------------------------------------------------------
|
|
45
|
+
* DOCPUBLIC
|
|
46
|
+
* This function indicates that the calling thread is
|
|
47
|
+
* willing to give up some time slices to other threads.
|
|
48
|
+
*
|
|
49
|
+
* PARAMETERS
|
|
50
|
+
* N/A
|
|
51
|
+
*
|
|
52
|
+
*
|
|
53
|
+
* DESCRIPTION
|
|
54
|
+
* This function indicates that the calling thread is
|
|
55
|
+
* willing to give up some time slices to other threads.
|
|
56
|
+
* NOTE: Since this is part of POSIX 1003.1b
|
|
57
|
+
* (realtime extensions), it is defined as returning
|
|
58
|
+
* -1 if an error occurs and sets errno to the actual
|
|
59
|
+
* error.
|
|
60
|
+
*
|
|
61
|
+
* RESULTS
|
|
62
|
+
* 0 successfully created semaphore,
|
|
63
|
+
* ENOSYS sched_yield not supported,
|
|
64
|
+
*
|
|
65
|
+
* ------------------------------------------------------
|
|
66
|
+
*/
|
|
67
|
+
{
|
|
68
|
+
Sleep (0);
|
|
69
|
+
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* -------------------------------------------------------------
|
|
3
|
+
*
|
|
4
|
+
* Module: sem_close.c
|
|
5
|
+
*
|
|
6
|
+
* Purpose:
|
|
7
|
+
* Semaphores aren't actually part of the PThreads standard.
|
|
8
|
+
* They are defined by the POSIX Standard:
|
|
9
|
+
*
|
|
10
|
+
* POSIX 1003.1b-1993 (POSIX.1b)
|
|
11
|
+
*
|
|
12
|
+
* -------------------------------------------------------------
|
|
13
|
+
*
|
|
14
|
+
* --------------------------------------------------------------------------
|
|
15
|
+
*
|
|
16
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
17
|
+
* Copyright(C) 1998 John E. Bossom
|
|
18
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
19
|
+
*
|
|
20
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
21
|
+
*
|
|
22
|
+
* The current list of contributors is contained
|
|
23
|
+
* in the file CONTRIBUTORS included with the source
|
|
24
|
+
* code distribution. The list can also be seen at the
|
|
25
|
+
* following World Wide Web location:
|
|
26
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
27
|
+
*
|
|
28
|
+
* This library is free software; you can redistribute it and/or
|
|
29
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
30
|
+
* License as published by the Free Software Foundation; either
|
|
31
|
+
* version 2 of the License, or (at your option) any later version.
|
|
32
|
+
*
|
|
33
|
+
* This library is distributed in the hope that it will be useful,
|
|
34
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
35
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
36
|
+
* Lesser General Public License for more details.
|
|
37
|
+
*
|
|
38
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
39
|
+
* License along with this library in the file COPYING.LIB;
|
|
40
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
41
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
#include "pthread.h"
|
|
45
|
+
#include "semaphore.h"
|
|
46
|
+
#include "implement.h"
|
|
47
|
+
|
|
48
|
+
/* ignore warning "unreferenced formal parameter" */
|
|
49
|
+
#if defined(_MSC_VER)
|
|
50
|
+
#pragma warning( disable : 4100 )
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
int
|
|
54
|
+
sem_close (sem_t * sem)
|
|
55
|
+
{
|
|
56
|
+
errno = ENOSYS;
|
|
57
|
+
return -1;
|
|
58
|
+
} /* sem_close */
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* -------------------------------------------------------------
|
|
3
|
+
*
|
|
4
|
+
* Module: sem_destroy.c
|
|
5
|
+
*
|
|
6
|
+
* Purpose:
|
|
7
|
+
* Semaphores aren't actually part of the PThreads standard.
|
|
8
|
+
* They are defined by the POSIX Standard:
|
|
9
|
+
*
|
|
10
|
+
* POSIX 1003.1b-1993 (POSIX.1b)
|
|
11
|
+
*
|
|
12
|
+
* -------------------------------------------------------------
|
|
13
|
+
*
|
|
14
|
+
* --------------------------------------------------------------------------
|
|
15
|
+
*
|
|
16
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
17
|
+
* Copyright(C) 1998 John E. Bossom
|
|
18
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
19
|
+
*
|
|
20
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
21
|
+
*
|
|
22
|
+
* The current list of contributors is contained
|
|
23
|
+
* in the file CONTRIBUTORS included with the source
|
|
24
|
+
* code distribution. The list can also be seen at the
|
|
25
|
+
* following World Wide Web location:
|
|
26
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
27
|
+
*
|
|
28
|
+
* This library is free software; you can redistribute it and/or
|
|
29
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
30
|
+
* License as published by the Free Software Foundation; either
|
|
31
|
+
* version 2 of the License, or (at your option) any later version.
|
|
32
|
+
*
|
|
33
|
+
* This library is distributed in the hope that it will be useful,
|
|
34
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
35
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
36
|
+
* Lesser General Public License for more details.
|
|
37
|
+
*
|
|
38
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
39
|
+
* License along with this library in the file COPYING.LIB;
|
|
40
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
41
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
#include "pthread.h"
|
|
45
|
+
#include "semaphore.h"
|
|
46
|
+
#include "implement.h"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
int
|
|
50
|
+
sem_destroy (sem_t * sem)
|
|
51
|
+
/*
|
|
52
|
+
* ------------------------------------------------------
|
|
53
|
+
* DOCPUBLIC
|
|
54
|
+
* This function destroys an unnamed semaphore.
|
|
55
|
+
*
|
|
56
|
+
* PARAMETERS
|
|
57
|
+
* sem
|
|
58
|
+
* pointer to an instance of sem_t
|
|
59
|
+
*
|
|
60
|
+
* DESCRIPTION
|
|
61
|
+
* This function destroys an unnamed semaphore.
|
|
62
|
+
*
|
|
63
|
+
* RESULTS
|
|
64
|
+
* 0 successfully destroyed semaphore,
|
|
65
|
+
* -1 failed, error in errno
|
|
66
|
+
* ERRNO
|
|
67
|
+
* EINVAL 'sem' is not a valid semaphore,
|
|
68
|
+
* ENOSYS semaphores are not supported,
|
|
69
|
+
* EBUSY threads (or processes) are currently
|
|
70
|
+
* blocked on 'sem'
|
|
71
|
+
*
|
|
72
|
+
* ------------------------------------------------------
|
|
73
|
+
*/
|
|
74
|
+
{
|
|
75
|
+
int result = 0;
|
|
76
|
+
sem_t s = NULL;
|
|
77
|
+
|
|
78
|
+
if (sem == NULL || *sem == NULL)
|
|
79
|
+
{
|
|
80
|
+
result = EINVAL;
|
|
81
|
+
}
|
|
82
|
+
else
|
|
83
|
+
{
|
|
84
|
+
s = *sem;
|
|
85
|
+
|
|
86
|
+
if ((result = pthread_mutex_lock (&s->lock)) == 0)
|
|
87
|
+
{
|
|
88
|
+
if (s->value < 0)
|
|
89
|
+
{
|
|
90
|
+
(void) pthread_mutex_unlock (&s->lock);
|
|
91
|
+
result = EBUSY;
|
|
92
|
+
}
|
|
93
|
+
else
|
|
94
|
+
{
|
|
95
|
+
/* There are no threads currently blocked on this semaphore. */
|
|
96
|
+
|
|
97
|
+
if (!CloseHandle (s->sem))
|
|
98
|
+
{
|
|
99
|
+
(void) pthread_mutex_unlock (&s->lock);
|
|
100
|
+
result = EINVAL;
|
|
101
|
+
}
|
|
102
|
+
else
|
|
103
|
+
{
|
|
104
|
+
/*
|
|
105
|
+
* Invalidate the semaphore handle when we have the lock.
|
|
106
|
+
* Other sema operations should test this after acquiring the lock
|
|
107
|
+
* to check that the sema is still valid, i.e. before performing any
|
|
108
|
+
* operations. This may only be necessary before the sema op routine
|
|
109
|
+
* returns so that the routine can return EINVAL - e.g. if setting
|
|
110
|
+
* s->value to SEM_VALUE_MAX below does force a fall-through.
|
|
111
|
+
*/
|
|
112
|
+
*sem = NULL;
|
|
113
|
+
|
|
114
|
+
/* Prevent anyone else actually waiting on or posting this sema.
|
|
115
|
+
*/
|
|
116
|
+
s->value = SEM_VALUE_MAX;
|
|
117
|
+
|
|
118
|
+
(void) pthread_mutex_unlock (&s->lock);
|
|
119
|
+
|
|
120
|
+
do
|
|
121
|
+
{
|
|
122
|
+
/* Give other threads a chance to run and exit any sema op
|
|
123
|
+
* routines. Due to the SEM_VALUE_MAX value, if sem_post or
|
|
124
|
+
* sem_wait were blocked by us they should fall through.
|
|
125
|
+
*/
|
|
126
|
+
Sleep(0);
|
|
127
|
+
}
|
|
128
|
+
while (pthread_mutex_destroy (&s->lock) == EBUSY);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (result != 0)
|
|
135
|
+
{
|
|
136
|
+
errno = result;
|
|
137
|
+
return -1;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
free (s);
|
|
141
|
+
|
|
142
|
+
return 0;
|
|
143
|
+
|
|
144
|
+
} /* sem_destroy */
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* -------------------------------------------------------------
|
|
3
|
+
*
|
|
4
|
+
* Module: sem_getvalue.c
|
|
5
|
+
*
|
|
6
|
+
* Purpose:
|
|
7
|
+
* Semaphores aren't actually part of PThreads.
|
|
8
|
+
* They are defined by the POSIX Standard:
|
|
9
|
+
*
|
|
10
|
+
* POSIX 1003.1-2001
|
|
11
|
+
*
|
|
12
|
+
* -------------------------------------------------------------
|
|
13
|
+
*
|
|
14
|
+
* --------------------------------------------------------------------------
|
|
15
|
+
*
|
|
16
|
+
* Pthreads-win32 - POSIX Threads Library for Win32
|
|
17
|
+
* Copyright(C) 1998 John E. Bossom
|
|
18
|
+
* Copyright(C) 1999,2005 Pthreads-win32 contributors
|
|
19
|
+
*
|
|
20
|
+
* Contact Email: rpj@callisto.canberra.edu.au
|
|
21
|
+
*
|
|
22
|
+
* The current list of contributors is contained
|
|
23
|
+
* in the file CONTRIBUTORS included with the source
|
|
24
|
+
* code distribution. The list can also be seen at the
|
|
25
|
+
* following World Wide Web location:
|
|
26
|
+
* http://sources.redhat.com/pthreads-win32/contributors.html
|
|
27
|
+
*
|
|
28
|
+
* This library is free software; you can redistribute it and/or
|
|
29
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
30
|
+
* License as published by the Free Software Foundation; either
|
|
31
|
+
* version 2 of the License, or (at your option) any later version.
|
|
32
|
+
*
|
|
33
|
+
* This library is distributed in the hope that it will be useful,
|
|
34
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
35
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
36
|
+
* Lesser General Public License for more details.
|
|
37
|
+
*
|
|
38
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
39
|
+
* License along with this library in the file COPYING.LIB;
|
|
40
|
+
* if not, write to the Free Software Foundation, Inc.,
|
|
41
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
#include "pthread.h"
|
|
45
|
+
#include "semaphore.h"
|
|
46
|
+
#include "implement.h"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
int
|
|
50
|
+
sem_getvalue (sem_t * sem, int *sval)
|
|
51
|
+
/*
|
|
52
|
+
* ------------------------------------------------------
|
|
53
|
+
* DOCPUBLIC
|
|
54
|
+
* This function stores the current count value of the
|
|
55
|
+
* semaphore.
|
|
56
|
+
* RESULTS
|
|
57
|
+
*
|
|
58
|
+
* Return value
|
|
59
|
+
*
|
|
60
|
+
* 0 sval has been set.
|
|
61
|
+
* -1 failed, error in errno
|
|
62
|
+
*
|
|
63
|
+
* in global errno
|
|
64
|
+
*
|
|
65
|
+
* EINVAL 'sem' is not a valid semaphore,
|
|
66
|
+
* ENOSYS this function is not supported,
|
|
67
|
+
*
|
|
68
|
+
*
|
|
69
|
+
* PARAMETERS
|
|
70
|
+
*
|
|
71
|
+
* sem pointer to an instance of sem_t
|
|
72
|
+
*
|
|
73
|
+
* sval pointer to int.
|
|
74
|
+
*
|
|
75
|
+
* DESCRIPTION
|
|
76
|
+
* This function stores the current count value of the semaphore
|
|
77
|
+
* pointed to by sem in the int pointed to by sval.
|
|
78
|
+
*/
|
|
79
|
+
{
|
|
80
|
+
if (sem == NULL || *sem == NULL || sval == NULL)
|
|
81
|
+
{
|
|
82
|
+
errno = EINVAL;
|
|
83
|
+
return -1;
|
|
84
|
+
}
|
|
85
|
+
else
|
|
86
|
+
{
|
|
87
|
+
long value;
|
|
88
|
+
register sem_t s = *sem;
|
|
89
|
+
int result = 0;
|
|
90
|
+
|
|
91
|
+
if ((result = pthread_mutex_lock(&s->lock)) == 0)
|
|
92
|
+
{
|
|
93
|
+
/* See sem_destroy.c
|
|
94
|
+
*/
|
|
95
|
+
if (*sem == NULL)
|
|
96
|
+
{
|
|
97
|
+
(void) pthread_mutex_unlock (&s->lock);
|
|
98
|
+
errno = EINVAL;
|
|
99
|
+
return -1;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
value = s->value;
|
|
103
|
+
(void) pthread_mutex_unlock(&s->lock);
|
|
104
|
+
*sval = value;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
} /* sem_getvalue */
|