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,141 @@
|
|
|
1
|
+
----------
|
|
2
|
+
Known bugs
|
|
3
|
+
----------
|
|
4
|
+
|
|
5
|
+
1. Not strictly a bug, more of a gotcha.
|
|
6
|
+
|
|
7
|
+
Under MS VC++ (only tested with version 6.0), a term_func
|
|
8
|
+
set via the standard C++ set_terminate() function causes the
|
|
9
|
+
application to abort.
|
|
10
|
+
|
|
11
|
+
Notes from the MSVC++ manual:
|
|
12
|
+
1) A term_func() should call exit(), otherwise
|
|
13
|
+
abort() will be called on return to the caller.
|
|
14
|
+
A call to abort() raises SIGABRT and the default signal handler
|
|
15
|
+
for all signals terminates the calling program with
|
|
16
|
+
exit code 3.
|
|
17
|
+
2) A term_func() must not throw an exception. Therefore
|
|
18
|
+
term_func() should not call pthread_exit(), which
|
|
19
|
+
works by throwing an exception (pthreadVCE or pthreadVSE)
|
|
20
|
+
or by calling longjmp (pthreadVC).
|
|
21
|
+
|
|
22
|
+
Workaround: avoid using pthread_exit() in C++ applications. Exit
|
|
23
|
+
threads by dropping through the end of the thread routine.
|
|
24
|
+
|
|
25
|
+
2. Cancellation problems in C++ builds
|
|
26
|
+
- Milan Gardian
|
|
27
|
+
|
|
28
|
+
[Note: It's not clear if this problem isn't simply due to the context
|
|
29
|
+
switch in pthread_cancel() which occurs unless the QueueUserAPCEx
|
|
30
|
+
library and driver are installed and used. Just like setjmp/longjmp,
|
|
31
|
+
this is probably not going to work well in C++. In any case, unless for
|
|
32
|
+
some very unusual reason you really must use the C++ build then please
|
|
33
|
+
use the C build pthreadVC2.dll or pthreadGC2.dll, i.e. for C++
|
|
34
|
+
applications.]
|
|
35
|
+
|
|
36
|
+
This is suspected to be a compiler bug in VC6.0, and also seen in
|
|
37
|
+
VC7.0 and VS .NET 2003. The GNU C++ compiler does not have a problem
|
|
38
|
+
with this, and it has been reported that the Intel C++ 8.1 compiler
|
|
39
|
+
and Visual C++ 2005 Express Edition Beta2 pass tests\semaphore4.c
|
|
40
|
+
(which exposes the bug).
|
|
41
|
+
|
|
42
|
+
Workaround [rpj - 2 Feb 2002]
|
|
43
|
+
-----------------------------
|
|
44
|
+
[Please note: this workaround did not solve a similar problem in
|
|
45
|
+
snapshot-2004-11-03 or later, even though similar symptoms were seen.
|
|
46
|
+
tests\semaphore4.c fails in that snapshot for the VCE version of the
|
|
47
|
+
DLL.]
|
|
48
|
+
|
|
49
|
+
The problem disappears when /Ob0 is used, i.e. /O2 /Ob0 works OK,
|
|
50
|
+
but if you want to use inlining optimisation you can be much more
|
|
51
|
+
specific about where it's switched off and on by using a pragma.
|
|
52
|
+
|
|
53
|
+
So the inlining optimisation is interfering with the way that cleanup
|
|
54
|
+
handlers are run. It appears to relate to auto-inlining of class methods
|
|
55
|
+
since this is the only auto inlining that is performed at /O1 optimisation
|
|
56
|
+
(functions with the "inline" qualifier are also inlined, but the problem
|
|
57
|
+
doesn't appear to involve any such functions in the library or testsuite).
|
|
58
|
+
|
|
59
|
+
In order to confirm the inlining culprit, the following use of pragmas
|
|
60
|
+
eliminate the problem but I don't know how to make it transparent, putting
|
|
61
|
+
it in, say, pthread.h where pthread_cleanup_push defined as a macro.
|
|
62
|
+
|
|
63
|
+
#pragma inline_depth(0)
|
|
64
|
+
pthread_cleanup_push(handlerFunc, (void *) &arg);
|
|
65
|
+
|
|
66
|
+
/* ... */
|
|
67
|
+
|
|
68
|
+
pthread_cleanup_pop(0);
|
|
69
|
+
#pragma inline_depth()
|
|
70
|
+
|
|
71
|
+
Note the empty () pragma value after the pop macro. This resets depth to the
|
|
72
|
+
default. Or you can specify a non-zero depth here.
|
|
73
|
+
|
|
74
|
+
The pragma is also needed (and now used) within the library itself wherever
|
|
75
|
+
cleanup handlers are used (condvar.c and rwlock.c).
|
|
76
|
+
|
|
77
|
+
Use of these pragmas allows compiler optimisations /O1 and /O2 to be
|
|
78
|
+
used for either or both the library and applications.
|
|
79
|
+
|
|
80
|
+
Experimenting further, I found that wrapping the actual cleanup handler
|
|
81
|
+
function with #pragma auto_inline(off|on) does NOT work.
|
|
82
|
+
|
|
83
|
+
MSVC6.0 doesn't appear to support the C99 standard's _Pragma directive,
|
|
84
|
+
however, later versions may. This form is embeddable inside #define
|
|
85
|
+
macros, which would be ideal because it would mean that it could be added
|
|
86
|
+
to the push/pop macro definitions in pthread.h and hidden from the
|
|
87
|
+
application programmer.
|
|
88
|
+
|
|
89
|
+
[/rpj]
|
|
90
|
+
|
|
91
|
+
Original problem description
|
|
92
|
+
----------------------------
|
|
93
|
+
|
|
94
|
+
The cancellation (actually, cleanup-after-cancel) tests fail when using VC
|
|
95
|
+
(professional) optimisation switches (/O1 or /O2) in pthreads library. I
|
|
96
|
+
have not investigated which concrete optimisation technique causes this
|
|
97
|
+
problem (/Og, /Oi, /Ot, /Oy, /Ob1, /Gs, /Gf, /Gy, etc.), but here is a
|
|
98
|
+
summary of builds and corresponding failures:
|
|
99
|
+
|
|
100
|
+
* pthreads VSE (optimised tests): OK
|
|
101
|
+
* pthreads VCE (optimised tests): Failed "cleanup1" test (runtime)
|
|
102
|
+
|
|
103
|
+
* pthreads VSE (DLL in CRT, optimised tests): OK
|
|
104
|
+
* pthreads VCE (DLL in CRT, optimised tests): Failed "cleanup1" test
|
|
105
|
+
(runtime)
|
|
106
|
+
|
|
107
|
+
Please note that while in VSE version of the pthreads library the
|
|
108
|
+
optimisation does not really have any impact on the tests (they pass OK), in
|
|
109
|
+
VCE version addition of optimisation (/O2 in this case) causes the tests to
|
|
110
|
+
fail uniformly - either in "cleanup0" or "cleanup1" test cases.
|
|
111
|
+
|
|
112
|
+
Please note that all the tests above use default pthreads DLL (no
|
|
113
|
+
optimisations, linked with either static or DLL CRT, based on test type).
|
|
114
|
+
Therefore the problem lies not within the pthreads DLL but within the
|
|
115
|
+
compiled client code (the application using pthreads -> involvement of
|
|
116
|
+
"pthread.h").
|
|
117
|
+
|
|
118
|
+
I think the message of this section is that usage of VCE version of pthreads
|
|
119
|
+
in applications relying on cancellation/cleanup AND using optimisations for
|
|
120
|
+
creation of production code is highly unreliable for the current version of
|
|
121
|
+
the pthreads library.
|
|
122
|
+
|
|
123
|
+
3. The Borland Builder 5.5 version of the library produces memory read exceptions
|
|
124
|
+
in some tests.
|
|
125
|
+
|
|
126
|
+
4. pthread_barrier_wait() can deadlock if the number of potential calling
|
|
127
|
+
threads for a particular barrier is greater than the barrier count parameter
|
|
128
|
+
given to pthread_barrier_init() for that barrier.
|
|
129
|
+
|
|
130
|
+
This is due to the very lightweight implementation of pthread-win32 barriers.
|
|
131
|
+
To cope with more than "count" possible waiters, barriers must effectively
|
|
132
|
+
implement all the same safeguards as condition variables, making them much
|
|
133
|
+
"heavier" than at present.
|
|
134
|
+
|
|
135
|
+
The workaround is to ensure that no more than "count" threads attempt to wait
|
|
136
|
+
at the barrier.
|
|
137
|
+
|
|
138
|
+
5. Canceling a thread blocked on pthread_once appears not to work in the MSVC++
|
|
139
|
+
version of the library "pthreadVCE.dll". The test case "once3.c" hangs. I have no
|
|
140
|
+
clues on this at present. All other versions pass this test ok - pthreadsVC.dll,
|
|
141
|
+
pthreadsVSE.dll, pthreadsGC.dll and pthreadsGCE.dll.
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# This makefile is compatible with BCB make. Use "make -fBMakefile" to compile.
|
|
2
|
+
#
|
|
3
|
+
# The variables $DLLDEST and $LIBDEST hold the destination directories for the
|
|
4
|
+
# dll and the lib, respectively. Probably all that needs to change is $DEVROOT.
|
|
5
|
+
#
|
|
6
|
+
# Currently only the recommended pthreadBC.dll is built by this makefile.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
DLL_VER = 2
|
|
11
|
+
|
|
12
|
+
DEVROOT = .
|
|
13
|
+
|
|
14
|
+
DLLDEST = $(DEVROOT)\DLL
|
|
15
|
+
LIBDEST = $(DEVROOT)\DLL
|
|
16
|
+
|
|
17
|
+
DLLS = pthreadBC$(DLL_VER).dll
|
|
18
|
+
|
|
19
|
+
OPTIM = /O2
|
|
20
|
+
|
|
21
|
+
RC = brcc32
|
|
22
|
+
RCFLAGS = -i.
|
|
23
|
+
|
|
24
|
+
CFLAGS = /q /I. /D_WIN32_WINNT=0x400 /DHAVE_PTW32_CONFIG_H=1 /4 /tWD /tWM \
|
|
25
|
+
/w-aus /w-asc /w-par
|
|
26
|
+
|
|
27
|
+
#C cleanup code
|
|
28
|
+
BCFLAGS = $(PTW32_FLAGS) $(CFLAGS)
|
|
29
|
+
|
|
30
|
+
# Agregate modules for inlinability
|
|
31
|
+
DLL_OBJS = \
|
|
32
|
+
attr.obj \
|
|
33
|
+
barrier.obj \
|
|
34
|
+
cancel.obj \
|
|
35
|
+
cleanup.obj \
|
|
36
|
+
condvar.obj \
|
|
37
|
+
create.obj \
|
|
38
|
+
dll.obj \
|
|
39
|
+
errno.obj \
|
|
40
|
+
exit.obj \
|
|
41
|
+
fork.obj \
|
|
42
|
+
global.obj \
|
|
43
|
+
misc.obj \
|
|
44
|
+
mutex.obj \
|
|
45
|
+
nonportable.obj \
|
|
46
|
+
private.obj \
|
|
47
|
+
rwlock.obj \
|
|
48
|
+
sched.obj \
|
|
49
|
+
semaphore.obj \
|
|
50
|
+
signal.obj \
|
|
51
|
+
spin.obj \
|
|
52
|
+
sync.obj \
|
|
53
|
+
tsd.obj
|
|
54
|
+
|
|
55
|
+
INCL = config.h implement.h semaphore.h pthread.h need_errno.h
|
|
56
|
+
|
|
57
|
+
ATTR_SRCS = \
|
|
58
|
+
pthread_attr_init.c \
|
|
59
|
+
pthread_attr_destroy.c \
|
|
60
|
+
pthread_attr_getdetachstate.c \
|
|
61
|
+
pthread_attr_setdetachstate.c \
|
|
62
|
+
pthread_attr_getstackaddr.c \
|
|
63
|
+
pthread_attr_setstackaddr.c \
|
|
64
|
+
pthread_attr_getstacksize.c \
|
|
65
|
+
pthread_attr_setstacksize.c \
|
|
66
|
+
pthread_attr_getscope.c \
|
|
67
|
+
pthread_attr_setscope.c
|
|
68
|
+
|
|
69
|
+
BARRIER_SRCS = \
|
|
70
|
+
pthread_barrier_init.c \
|
|
71
|
+
pthread_barrier_destroy.c \
|
|
72
|
+
pthread_barrier_wait.c \
|
|
73
|
+
pthread_barrierattr_init.c \
|
|
74
|
+
pthread_barrierattr_destroy.c \
|
|
75
|
+
pthread_barrierattr_setpshared.c \
|
|
76
|
+
pthread_barrierattr_getpshared.c
|
|
77
|
+
|
|
78
|
+
CANCEL_SRCS = \
|
|
79
|
+
pthread_setcancelstate.c \
|
|
80
|
+
pthread_setcanceltype.c \
|
|
81
|
+
pthread_testcancel.c \
|
|
82
|
+
pthread_cancel.c
|
|
83
|
+
|
|
84
|
+
CONDVAR_SRCS = \
|
|
85
|
+
ptw32_cond_check_need_init.c \
|
|
86
|
+
pthread_condattr_destroy.c \
|
|
87
|
+
pthread_condattr_getpshared.c \
|
|
88
|
+
pthread_condattr_init.c \
|
|
89
|
+
pthread_condattr_setpshared.c \
|
|
90
|
+
pthread_cond_destroy.c \
|
|
91
|
+
pthread_cond_init.c \
|
|
92
|
+
pthread_cond_signal.c \
|
|
93
|
+
pthread_cond_wait.c
|
|
94
|
+
|
|
95
|
+
EXIT_SRCS = \
|
|
96
|
+
pthread_exit.c
|
|
97
|
+
|
|
98
|
+
MISC_SRCS = \
|
|
99
|
+
pthread_equal.c \
|
|
100
|
+
pthread_getconcurrency.c \
|
|
101
|
+
pthread_once.c \
|
|
102
|
+
pthread_self.c \
|
|
103
|
+
pthread_setconcurrency.c \
|
|
104
|
+
ptw32_calloc.c \
|
|
105
|
+
ptw32_MCS_lock.c \
|
|
106
|
+
ptw32_new.c \
|
|
107
|
+
w32_CancelableWait.c
|
|
108
|
+
|
|
109
|
+
MUTEX_SRCS = \
|
|
110
|
+
ptw32_mutex_check_need_init.c \
|
|
111
|
+
pthread_mutex_init.c \
|
|
112
|
+
pthread_mutex_destroy.c \
|
|
113
|
+
pthread_mutexattr_init.c \
|
|
114
|
+
pthread_mutexattr_destroy.c \
|
|
115
|
+
pthread_mutexattr_getpshared.c \
|
|
116
|
+
pthread_mutexattr_setpshared.c \
|
|
117
|
+
pthread_mutexattr_settype.c \
|
|
118
|
+
pthread_mutexattr_gettype.c \
|
|
119
|
+
pthread_mutexattr_setrobust.c \
|
|
120
|
+
pthread_mutexattr_getrobust.c \
|
|
121
|
+
pthread_mutex_lock.c \
|
|
122
|
+
pthread_mutex_timedlock.c \
|
|
123
|
+
pthread_mutex_unlock.c \
|
|
124
|
+
pthread_mutex_trylock.c \
|
|
125
|
+
pthread_mutex_consistent.c
|
|
126
|
+
|
|
127
|
+
NONPORTABLE_SRCS = \
|
|
128
|
+
pthread_mutexattr_setkind_np.c \
|
|
129
|
+
pthread_mutexattr_getkind_np.c \
|
|
130
|
+
pthread_getw32threadhandle_np.c \
|
|
131
|
+
pthread_delay_np.c \
|
|
132
|
+
pthread_num_processors_np.c \
|
|
133
|
+
pthread_win32_attach_detach_np.c \
|
|
134
|
+
pthread_timechange_handler_np.c
|
|
135
|
+
|
|
136
|
+
PRIVATE_SRCS = \
|
|
137
|
+
ptw32_is_attr.c \
|
|
138
|
+
ptw32_processInitialize.c \
|
|
139
|
+
ptw32_processTerminate.c \
|
|
140
|
+
ptw32_threadStart.c \
|
|
141
|
+
ptw32_threadDestroy.c \
|
|
142
|
+
ptw32_tkAssocCreate.c \
|
|
143
|
+
ptw32_tkAssocDestroy.c \
|
|
144
|
+
ptw32_callUserDestroyRoutines.c \
|
|
145
|
+
ptw32_timespec.c \
|
|
146
|
+
ptw32_relmillisecs.c \
|
|
147
|
+
ptw32_throw.c \
|
|
148
|
+
ptw32_getprocessors.c
|
|
149
|
+
|
|
150
|
+
RWLOCK_SRCS = \
|
|
151
|
+
ptw32_rwlock_check_need_init.c \
|
|
152
|
+
ptw32_rwlock_cancelwrwait.c \
|
|
153
|
+
pthread_rwlock_init.c \
|
|
154
|
+
pthread_rwlock_destroy.c \
|
|
155
|
+
pthread_rwlockattr_init.c \
|
|
156
|
+
pthread_rwlockattr_destroy.c \
|
|
157
|
+
pthread_rwlockattr_getpshared.c \
|
|
158
|
+
pthread_rwlockattr_setpshared.c \
|
|
159
|
+
pthread_rwlock_rdlock.c \
|
|
160
|
+
pthread_rwlock_timedrdlock.c \
|
|
161
|
+
pthread_rwlock_wrlock.c \
|
|
162
|
+
pthread_rwlock_timedwrlock.c \
|
|
163
|
+
pthread_rwlock_unlock.c \
|
|
164
|
+
pthread_rwlock_tryrdlock.c \
|
|
165
|
+
pthread_rwlock_trywrlock.c
|
|
166
|
+
|
|
167
|
+
SCHED_SRCS = \
|
|
168
|
+
pthread_attr_setschedpolicy.c \
|
|
169
|
+
pthread_attr_getschedpolicy.c \
|
|
170
|
+
pthread_attr_setschedparam.c \
|
|
171
|
+
pthread_attr_getschedparam.c \
|
|
172
|
+
pthread_attr_setinheritsched.c \
|
|
173
|
+
pthread_attr_getinheritsched.c \
|
|
174
|
+
pthread_setschedparam.c \
|
|
175
|
+
pthread_getschedparam.c \
|
|
176
|
+
sched_get_priority_max.c \
|
|
177
|
+
sched_get_priority_min.c \
|
|
178
|
+
sched_setscheduler.c \
|
|
179
|
+
sched_getscheduler.c \
|
|
180
|
+
sched_yield.c
|
|
181
|
+
|
|
182
|
+
SEMAPHORE_SRCS = \
|
|
183
|
+
sem_init.c \
|
|
184
|
+
sem_destroy.c \
|
|
185
|
+
sem_trywait.c \
|
|
186
|
+
sem_timedwait.c \
|
|
187
|
+
sem_wait.c \
|
|
188
|
+
sem_post.c \
|
|
189
|
+
sem_post_multiple.c \
|
|
190
|
+
sem_getvalue.c \
|
|
191
|
+
sem_open.c \
|
|
192
|
+
sem_close.c \
|
|
193
|
+
sem_unlink.c
|
|
194
|
+
|
|
195
|
+
SPIN_SRCS = \
|
|
196
|
+
ptw32_spinlock_check_need_init.c \
|
|
197
|
+
pthread_spin_init.c \
|
|
198
|
+
pthread_spin_destroy.c \
|
|
199
|
+
pthread_spin_lock.c \
|
|
200
|
+
pthread_spin_unlock.c \
|
|
201
|
+
pthread_spin_trylock.c
|
|
202
|
+
|
|
203
|
+
SYNC_SRCS = \
|
|
204
|
+
pthread_detach.c \
|
|
205
|
+
pthread_join.c
|
|
206
|
+
|
|
207
|
+
TSD_SRCS = \
|
|
208
|
+
pthread_key_create.c \
|
|
209
|
+
pthread_key_delete.c \
|
|
210
|
+
pthread_setspecific.c \
|
|
211
|
+
pthread_getspecific.c
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
all: clean $(DLLS)
|
|
215
|
+
|
|
216
|
+
realclean: clean
|
|
217
|
+
if exist pthread*.dll del pthread*.dll
|
|
218
|
+
if exist pthread*.lib del pthread*.lib
|
|
219
|
+
if exist *.stamp del *.stamp
|
|
220
|
+
|
|
221
|
+
clean:
|
|
222
|
+
if exist *.obj del *.obj
|
|
223
|
+
if exist *.ilk del *.ilk
|
|
224
|
+
if exist *.ilc del *.ilc
|
|
225
|
+
if exist *.ild del *.ild
|
|
226
|
+
if exist *.ilf del *.ilf
|
|
227
|
+
if exist *.ils del *.ils
|
|
228
|
+
if exist *.tds del *.tds
|
|
229
|
+
if exist *.pdb del *.pdb
|
|
230
|
+
if exist *.exp del *.exp
|
|
231
|
+
if exist *.map del *.map
|
|
232
|
+
if exist *.o del *.o
|
|
233
|
+
if exist *.i del *.i
|
|
234
|
+
if exist *.res del *.res
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
install: $(DLLS)
|
|
238
|
+
copy pthread*.dll $(DLLDEST)
|
|
239
|
+
copy pthread*.lib $(LIBDEST)
|
|
240
|
+
|
|
241
|
+
$(DLLS): $(DLL_OBJS) version.res
|
|
242
|
+
ilink32 /Tpd /Gi c0d32x.obj $(DLL_OBJS), \
|
|
243
|
+
$@, ,\
|
|
244
|
+
cw32mti.lib import32.lib, ,\
|
|
245
|
+
version.res
|
|
246
|
+
|
|
247
|
+
.c.obj:
|
|
248
|
+
$(CC) $(OPTIM) $(BCFLAGS) -c $<
|
|
249
|
+
|
|
250
|
+
.rc.res:
|
|
251
|
+
$(RC) $(RCFLAGS) $<
|
|
252
|
+
|
|
253
|
+
attr.obj: attr.c $(ATTR_SRCS) $(INCL)
|
|
254
|
+
barrier.obj: barrier.c $(BARRIER_SRCS) $(INCL)
|
|
255
|
+
cancel.obj: cancel.c $(CANCEL_SRCS) $(INCL)
|
|
256
|
+
condvar.obj: condvar.c $(CONDVAR_SRCS) $(INCL)
|
|
257
|
+
exit.obj: exit.c $(EXIT_SRCS) $(INCL)
|
|
258
|
+
misc.obj: misc.c $(MISC_SRCS) $(INCL)
|
|
259
|
+
mutex.obj: mutex.c $(MUTEX_SRCS) $(INCL)
|
|
260
|
+
nonportable.obj: nonportable.c $(NONPORTABLE_SRCS) $(INCL)
|
|
261
|
+
private.obj: private.c $(PRIVATE_SRCS) $(INCL)
|
|
262
|
+
rwlock.obj: rwlock.c $(RWLOCK_SRCS) $(INCL)
|
|
263
|
+
sched.obj: sched.c $(SCHED_SRCS) $(INCL)
|
|
264
|
+
semaphore.obj: semaphore.c $(SEMAPHORE_SRCS) $(INCL)
|
|
265
|
+
spin.obj: spin.c $(SPIN_SRCS) $(INCL)
|
|
266
|
+
sync.obj: sync.c $(SYNC_SRCS) $(INCL)
|
|
267
|
+
tsd.obj: tsd.c $(TSD_SRCS) $(INCL)
|
|
268
|
+
version.res: version.rc $(INCL)
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
Contributors (in approximate order of appearance)
|
|
2
|
+
|
|
3
|
+
[See also the ChangeLog file where individuals are
|
|
4
|
+
attributed in log entries. Likewise in the FAQ file.]
|
|
5
|
+
|
|
6
|
+
Ben Elliston bje at cygnus dot com
|
|
7
|
+
Initiated the project;
|
|
8
|
+
setup the project infrastructure (CVS, web page, etc.);
|
|
9
|
+
early prototype routines.
|
|
10
|
+
Ross Johnson Ross dot Johnson at dot homemail dot com dot au
|
|
11
|
+
early prototype routines;
|
|
12
|
+
ongoing project coordination/maintenance;
|
|
13
|
+
implementation of spin locks and barriers;
|
|
14
|
+
various enhancements;
|
|
15
|
+
bug fixes;
|
|
16
|
+
documentation;
|
|
17
|
+
testsuite.
|
|
18
|
+
Robert Colquhoun rjc at trump dot net dot au
|
|
19
|
+
Early bug fixes.
|
|
20
|
+
John E. Bossom John dot Bossom at cognos dot com
|
|
21
|
+
Contributed substantial original working implementation;
|
|
22
|
+
bug fixes;
|
|
23
|
+
ongoing guidance and standards interpretation.
|
|
24
|
+
Anders Norlander anorland at hem2 dot passagen dot se
|
|
25
|
+
Early enhancements and runtime checking for supported
|
|
26
|
+
Win32 routines.
|
|
27
|
+
Tor Lillqvist tml at iki dot fi
|
|
28
|
+
General enhancements;
|
|
29
|
+
early bug fixes to condition variables.
|
|
30
|
+
Scott Lightner scott at curriculum dot com
|
|
31
|
+
Bug fix.
|
|
32
|
+
Kevin Ruland Kevin dot Ruland at anheuser-busch dot com
|
|
33
|
+
Various bug fixes.
|
|
34
|
+
Mike Russo miker at eai dot com
|
|
35
|
+
Bug fix.
|
|
36
|
+
Mark E. Armstrong avail at pacbell dot net
|
|
37
|
+
Bug fixes.
|
|
38
|
+
Lorin Hochstein lmh at xiphos dot ca
|
|
39
|
+
general bug fixes; bug fixes to condition variables.
|
|
40
|
+
Peter Slacik Peter dot Slacik at tatramed dot sk
|
|
41
|
+
Bug fixes.
|
|
42
|
+
Mumit Khan khan at xraylith dot wisc dot edu
|
|
43
|
+
Fixes to work with Mingw32.
|
|
44
|
+
Milan Gardian mg at tatramed dot sk
|
|
45
|
+
Bug fixes and reports/analyses of obscure problems.
|
|
46
|
+
Aurelio Medina aureliom at crt dot com
|
|
47
|
+
First implementation of read-write locks.
|
|
48
|
+
Graham Dumpleton Graham dot Dumpleton at ra dot pad dot otc dot telstra dot com dot au
|
|
49
|
+
Bug fix in condition variables.
|
|
50
|
+
Tristan Savatier tristan at mpegtv dot com
|
|
51
|
+
WinCE port.
|
|
52
|
+
Erik Hensema erik at hensema dot xs4all dot nl
|
|
53
|
+
Bug fixes.
|
|
54
|
+
Rich Peters rpeters at micro-magic dot com
|
|
55
|
+
Todd Owen towen at lucidcalm dot dropbear dot id dot au
|
|
56
|
+
Bug fixes to dll loading.
|
|
57
|
+
Jason Nye jnye at nbnet dot nb dot ca
|
|
58
|
+
Implementation of async cancelation.
|
|
59
|
+
Fred Forester fforest at eticomm dot net
|
|
60
|
+
Kevin D. Clark kclark at cabletron dot com
|
|
61
|
+
David Baggett dmb at itasoftware dot com
|
|
62
|
+
Bug fixes.
|
|
63
|
+
Paul Redondo paul at matchvision dot com
|
|
64
|
+
Scott McCaskill scott at 3dfx dot com
|
|
65
|
+
Bug fixes.
|
|
66
|
+
Jef Gearhart jgearhart at tpssys dot com
|
|
67
|
+
Bug fix.
|
|
68
|
+
Arthur Kantor akantor at bexusa dot com
|
|
69
|
+
Mutex enhancements.
|
|
70
|
+
Steven Reddie smr at essemer dot com dot au
|
|
71
|
+
Bug fix.
|
|
72
|
+
Alexander Terekhov TEREKHOV at de dot ibm dot com
|
|
73
|
+
Re-implemented and improved read-write locks;
|
|
74
|
+
(with Louis Thomas) re-implemented and improved
|
|
75
|
+
condition variables;
|
|
76
|
+
enhancements to semaphores;
|
|
77
|
+
enhancements to mutexes;
|
|
78
|
+
new mutex implementation in 'futex' style;
|
|
79
|
+
suggested a robust implementation of pthread_once
|
|
80
|
+
similar to that implemented by V.Kliathcko;
|
|
81
|
+
system clock change handling re CV timeouts;
|
|
82
|
+
bug fixes.
|
|
83
|
+
Thomas Pfaff tpfaff at gmx dot net
|
|
84
|
+
Changes to make C version usable with C++ applications;
|
|
85
|
+
re-implemented mutex routines to avoid Win32 mutexes
|
|
86
|
+
and TryEnterCriticalSection;
|
|
87
|
+
procedure to fix Mingw32 thread-safety issues.
|
|
88
|
+
Franco Bez franco dot bez at gmx dot de
|
|
89
|
+
procedure to fix Mingw32 thread-safety issues.
|
|
90
|
+
Louis Thomas lthomas at arbitrade dot com
|
|
91
|
+
(with Alexander Terekhov) re-implemented and improved
|
|
92
|
+
condition variables.
|
|
93
|
+
David Korn dgk at research dot att dot com
|
|
94
|
+
Ported to UWIN.
|
|
95
|
+
Phil Frisbie, Jr. phil at hawksoft dot com
|
|
96
|
+
Bug fix.
|
|
97
|
+
Ralf Brese Ralf dot Brese at pdb4 dot siemens dot de
|
|
98
|
+
Bug fix.
|
|
99
|
+
prionx at juno dot com prionx at juno dot com
|
|
100
|
+
Bug fixes.
|
|
101
|
+
Max Woodbury mtew at cds dot duke dot edu
|
|
102
|
+
POSIX versioning conditionals;
|
|
103
|
+
reduced namespace pollution;
|
|
104
|
+
idea to separate routines to reduce statically
|
|
105
|
+
linked image sizes.
|
|
106
|
+
Rob Fanner rfanner at stonethree dot com
|
|
107
|
+
Bug fix.
|
|
108
|
+
Michael Johnson michaelj at maine dot rr dot com
|
|
109
|
+
Bug fix.
|
|
110
|
+
Nicolas Barry boozai at yahoo dot com
|
|
111
|
+
Bug fixes.
|
|
112
|
+
Piet van Bruggen pietvb at newbridges dot nl
|
|
113
|
+
Bug fix.
|
|
114
|
+
Makoto Kato raven at oldskool dot jp
|
|
115
|
+
AMD64 port.
|
|
116
|
+
Panagiotis E. Hadjidoukas peh at hpclab dot ceid dot upatras dot gr
|
|
117
|
+
phadjido at cs dot uoi dot gr
|
|
118
|
+
Contributed the QueueUserAPCEx package which
|
|
119
|
+
makes preemptive async cancelation possible.
|
|
120
|
+
Will Bryant will dot bryant at ecosm dot com
|
|
121
|
+
Borland compiler patch and makefile.
|
|
122
|
+
Anuj Goyal anuj dot goyal at gmail dot com
|
|
123
|
+
Port to Digital Mars compiler.
|
|
124
|
+
Gottlob Frege gottlobfrege at gmail dot com
|
|
125
|
+
re-implemented pthread_once (version 2)
|
|
126
|
+
(pthread_once cancellation added by rpj).
|
|
127
|
+
Vladimir Kliatchko vladimir at kliatchko dot com
|
|
128
|
+
reimplemented pthread_once with the same form
|
|
129
|
+
as described by A.Terekhov (later version 2);
|
|
130
|
+
implementation of MCS (Mellor-Crummey/Scott) locks.
|
|
131
|
+
Ramiro Polla ramiro.polla at gmail dot com
|
|
132
|
+
static library auto init/cleanup on application
|
|
133
|
+
start/exit via RT hooks (MSC and GCC compilers only).
|
|
134
|
+
Daniel Richard G. skunk at iSKUNK dot org
|
|
135
|
+
Patches and cleanups for x86 and x64, particularly
|
|
136
|
+
across a range of MS build environments.
|
|
137
|
+
John Kamp john dot kamp at globalgraphics dot com
|
|
138
|
+
Patches to fix various problems on x64; brutal testing
|
|
139
|
+
particularly using high memory run environments.
|
|
140
|
+
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
pthreads-win32 - a POSIX threads library for Microsoft Windows
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
This file is Copyrighted
|
|
5
|
+
------------------------
|
|
6
|
+
|
|
7
|
+
This file is covered under the following Copyright:
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2001,2006 Ross P. Johnson
|
|
10
|
+
All rights reserved.
|
|
11
|
+
|
|
12
|
+
Everyone is permitted to copy and distribute verbatim copies
|
|
13
|
+
of this license document, but changing it is not allowed.
|
|
14
|
+
|
|
15
|
+
Pthreads-win32 is covered by the GNU Lesser General Public License
|
|
16
|
+
------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
Pthreads-win32 is open software; you can redistribute it and/or
|
|
19
|
+
modify it under the terms of the GNU Lesser General Public License
|
|
20
|
+
as published by the Free Software Foundation version 2.1 of the
|
|
21
|
+
License.
|
|
22
|
+
|
|
23
|
+
Pthreads-win32 is several binary link libraries, several modules,
|
|
24
|
+
associated interface definition files and scripts used to control
|
|
25
|
+
its compilation and installation.
|
|
26
|
+
|
|
27
|
+
Pthreads-win32 is distributed in the hope that it will be useful,
|
|
28
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
29
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
30
|
+
GNU Lesser General Public License for more details.
|
|
31
|
+
|
|
32
|
+
A copy of the GNU Lesser General Public License is distributed with
|
|
33
|
+
pthreads-win32 under the filename:
|
|
34
|
+
|
|
35
|
+
COPYING.LIB
|
|
36
|
+
|
|
37
|
+
You should have received a copy of the version 2.1 GNU Lesser General
|
|
38
|
+
Public License with pthreads-win32; if not, write to:
|
|
39
|
+
|
|
40
|
+
Free Software Foundation, Inc.
|
|
41
|
+
59 Temple Place
|
|
42
|
+
Suite 330
|
|
43
|
+
Boston, MA 02111-1307
|
|
44
|
+
USA
|
|
45
|
+
|
|
46
|
+
The contact addresses for pthreads-win32 is as follows:
|
|
47
|
+
|
|
48
|
+
Web: http://sources.redhat.com/pthreads-win32
|
|
49
|
+
Email: Ross Johnson
|
|
50
|
+
Please use: Firstname.Lastname@homemail.com.au
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
Pthreads-win32 copyrights and exception files
|
|
55
|
+
---------------------------------------------
|
|
56
|
+
|
|
57
|
+
With the exception of the files listed below, Pthreads-win32
|
|
58
|
+
is covered under the following GNU Lesser General Public License
|
|
59
|
+
Copyrights:
|
|
60
|
+
|
|
61
|
+
Pthreads-win32 - POSIX Threads Library for Win32
|
|
62
|
+
Copyright(C) 1998 John E. Bossom
|
|
63
|
+
Copyright(C) 1999,2006 Pthreads-win32 contributors
|
|
64
|
+
|
|
65
|
+
The current list of contributors is contained
|
|
66
|
+
in the file CONTRIBUTORS included with the source
|
|
67
|
+
code distribution. The current list of CONTRIBUTORS
|
|
68
|
+
can also be seen at the following WWW location:
|
|
69
|
+
http://sources.redhat.com/pthreads-win32/contributors.html
|
|
70
|
+
|
|
71
|
+
Contact Email: Ross Johnson
|
|
72
|
+
Please use: Firstname.Lastname@homemail.com.au
|
|
73
|
+
|
|
74
|
+
These files are not covered under one of the Copyrights listed above:
|
|
75
|
+
|
|
76
|
+
COPYING
|
|
77
|
+
COPYING.LIB
|
|
78
|
+
tests/rwlock7.c
|
|
79
|
+
|
|
80
|
+
This file, COPYING, is distributed under the Copyright found at the
|
|
81
|
+
top of this file. It is important to note that you may distribute
|
|
82
|
+
verbatim copies of this file but you may not modify this file.
|
|
83
|
+
|
|
84
|
+
The file COPYING.LIB, which contains a copy of the version 2.1
|
|
85
|
+
GNU Lesser General Public License, is itself copyrighted by the
|
|
86
|
+
Free Software Foundation, Inc. Please note that the Free Software
|
|
87
|
+
Foundation, Inc. does NOT have a copyright over Pthreads-win32,
|
|
88
|
+
only the COPYING.LIB that is supplied with pthreads-win32.
|
|
89
|
+
|
|
90
|
+
The file tests/rwlock7.c is derived from code written by
|
|
91
|
+
Dave Butenhof for his book 'Programming With POSIX(R) Threads'.
|
|
92
|
+
The original code was obtained by free download from his website
|
|
93
|
+
http://home.earthlink.net/~anneart/family/Threads/source.html
|
|
94
|
+
and did not contain a copyright or author notice. It is assumed to
|
|
95
|
+
be freely distributable.
|
|
96
|
+
|
|
97
|
+
In all cases one may use and distribute these exception files freely.
|
|
98
|
+
And because one may freely distribute the LGPL covered files, the
|
|
99
|
+
entire pthreads-win32 source may be freely used and distributed.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
General Copyleft and License info
|
|
104
|
+
---------------------------------
|
|
105
|
+
|
|
106
|
+
For general information on Copylefts, see:
|
|
107
|
+
|
|
108
|
+
http://www.gnu.org/copyleft/
|
|
109
|
+
|
|
110
|
+
For information on GNU Lesser General Public Licenses, see:
|
|
111
|
+
|
|
112
|
+
http://www.gnu.org/copyleft/lesser.html
|
|
113
|
+
http://www.gnu.org/copyleft/lesser.txt
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
Why pthreads-win32 did not use the GNU General Public License
|
|
117
|
+
-------------------------------------------------------------
|
|
118
|
+
|
|
119
|
+
The goal of the pthreads-win32 project has been to
|
|
120
|
+
provide a quality and complete implementation of the POSIX
|
|
121
|
+
threads API for Microsoft Windows within the limits imposed
|
|
122
|
+
by virtue of it being a stand-alone library and not
|
|
123
|
+
linked directly to other POSIX compliant libraries. For
|
|
124
|
+
example, some functions and features, such as those based
|
|
125
|
+
on POSIX signals, are missing.
|
|
126
|
+
|
|
127
|
+
Pthreads-win32 is a library, available in several different
|
|
128
|
+
versions depending on supported compilers, and may be used
|
|
129
|
+
as a dynamically linked module or a statically linked set of
|
|
130
|
+
binary modules. It is not an application on it's own.
|
|
131
|
+
|
|
132
|
+
It was fully intended that pthreads-win32 be usable with
|
|
133
|
+
commercial software not covered by either the GPL or the LGPL
|
|
134
|
+
licenses. Pthreads-win32 has many contributors to it's
|
|
135
|
+
code base, many of whom have done so because they have
|
|
136
|
+
used the library in commercial or proprietry software
|
|
137
|
+
projects.
|
|
138
|
+
|
|
139
|
+
Releasing pthreads-win32 under the LGPL ensures that the
|
|
140
|
+
library can be used widely, while at the same time ensures
|
|
141
|
+
that bug fixes and improvements to the pthreads-win32 code
|
|
142
|
+
itself is returned to benefit all current and future users
|
|
143
|
+
of the library.
|
|
144
|
+
|
|
145
|
+
Although pthreads-win32 makes it possible for applications
|
|
146
|
+
that use POSIX threads to be ported to Win32 platforms, the
|
|
147
|
+
broader goal of the project is to encourage the use of open
|
|
148
|
+
standards, and in particular, to make it just a little easier
|
|
149
|
+
for developers writing Win32 applications to consider
|
|
150
|
+
widening the potential market for their products.
|