noderb 0.0.4 → 0.0.6

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.
Files changed (361) hide show
  1. data/ext/noderb_extension/libuv/AUTHORS +11 -1
  2. data/ext/noderb_extension/libuv/LICENSE +0 -8
  3. data/ext/noderb_extension/libuv/Makefile +5 -5
  4. data/ext/noderb_extension/libuv/README +11 -6
  5. data/ext/noderb_extension/libuv/common.gypi +158 -7
  6. data/ext/noderb_extension/libuv/config-unix.mk +34 -26
  7. data/ext/noderb_extension/libuv/gyp_uv +22 -4
  8. data/ext/noderb_extension/libuv/include/{eio.h → uv-private/eio.h} +2 -2
  9. data/ext/noderb_extension/libuv/include/{uv-unix.h → uv-private/uv-unix.h} +40 -0
  10. data/ext/noderb_extension/libuv/include/{uv-win.h → uv-private/uv-win.h} +96 -14
  11. data/ext/noderb_extension/libuv/include/uv.h +508 -83
  12. data/ext/noderb_extension/libuv/src/unix/cares.c +185 -0
  13. data/ext/noderb_extension/libuv/src/unix/core.c +828 -0
  14. data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_darwin.h +4 -0
  15. data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_linux.h +5 -15
  16. data/ext/noderb_extension/libuv/src/{eio → unix/eio}/eio.c +23 -2
  17. data/ext/noderb_extension/libuv/src/unix/error.c +102 -0
  18. data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_linux.h +26 -15
  19. data/ext/noderb_extension/libuv/src/unix/fs.c +562 -0
  20. data/ext/noderb_extension/libuv/src/unix/internal.h +75 -0
  21. data/ext/noderb_extension/libuv/src/unix/pipe.c +282 -0
  22. data/ext/noderb_extension/libuv/src/unix/process.c +287 -0
  23. data/ext/noderb_extension/libuv/src/unix/stream.c +727 -0
  24. data/ext/noderb_extension/libuv/src/unix/tcp.c +226 -0
  25. data/ext/noderb_extension/libuv/src/unix/udp.c +524 -0
  26. data/ext/noderb_extension/libuv/src/{uv-eio.c → unix/uv-eio.c} +48 -27
  27. data/ext/noderb_extension/libuv/src/{uv-eio.h → unix/uv-eio.h} +1 -1
  28. data/ext/noderb_extension/libuv/src/uv-common.c +24 -14
  29. data/ext/noderb_extension/libuv/src/uv-common.h +12 -7
  30. data/ext/noderb_extension/libuv/src/win/async.c +14 -16
  31. data/ext/noderb_extension/libuv/src/win/cares.c +64 -79
  32. data/ext/noderb_extension/libuv/src/win/core.c +105 -53
  33. data/ext/noderb_extension/libuv/src/win/error.c +23 -13
  34. data/ext/noderb_extension/libuv/src/win/fs.c +807 -0
  35. data/ext/noderb_extension/libuv/src/win/getaddrinfo.c +61 -41
  36. data/ext/noderb_extension/libuv/src/win/handle.c +56 -30
  37. data/ext/noderb_extension/libuv/src/win/internal.h +134 -95
  38. data/ext/noderb_extension/libuv/src/win/loop-watcher.c +21 -18
  39. data/ext/noderb_extension/libuv/src/win/pipe.c +313 -158
  40. data/ext/noderb_extension/libuv/src/win/process.c +117 -131
  41. data/ext/noderb_extension/libuv/src/win/req.c +55 -31
  42. data/ext/noderb_extension/libuv/src/win/stdio.c +5 -5
  43. data/ext/noderb_extension/libuv/src/win/stream.c +19 -14
  44. data/ext/noderb_extension/libuv/src/win/tcp.c +278 -336
  45. data/ext/noderb_extension/libuv/src/win/threadpool.c +73 -0
  46. data/ext/noderb_extension/libuv/src/win/timer.c +44 -37
  47. data/ext/noderb_extension/libuv/src/win/udp.c +592 -0
  48. data/ext/noderb_extension/libuv/src/win/util.c +20 -6
  49. data/ext/noderb_extension/libuv/src/win/winapi.c +23 -6
  50. data/ext/noderb_extension/libuv/src/win/winapi.h +4206 -0
  51. data/ext/noderb_extension/libuv/src/win/winsock.c +270 -0
  52. data/ext/noderb_extension/libuv/src/win/winsock.h +134 -0
  53. data/ext/noderb_extension/libuv/test/benchmark-ares.c +10 -6
  54. data/ext/noderb_extension/libuv/test/benchmark-getaddrinfo.c +10 -7
  55. data/ext/noderb_extension/libuv/test/benchmark-list.h +21 -0
  56. data/ext/noderb_extension/libuv/test/benchmark-ping-pongs.c +11 -7
  57. data/ext/noderb_extension/libuv/test/benchmark-pound.c +147 -58
  58. data/ext/noderb_extension/libuv/test/benchmark-pump.c +29 -23
  59. data/ext/noderb_extension/libuv/test/benchmark-spawn.c +13 -10
  60. data/ext/noderb_extension/libuv/test/benchmark-udp-packet-storm.c +250 -0
  61. data/ext/noderb_extension/libuv/test/dns-server.c +11 -6
  62. data/ext/noderb_extension/libuv/test/echo-server.c +30 -22
  63. data/ext/noderb_extension/libuv/test/test-async.c +3 -3
  64. data/ext/noderb_extension/libuv/test/test-callback-stack.c +6 -6
  65. data/ext/noderb_extension/libuv/test/test-connection-fail.c +6 -5
  66. data/ext/noderb_extension/libuv/test/test-delayed-accept.c +13 -13
  67. data/ext/noderb_extension/libuv/test/test-fs.c +715 -0
  68. data/ext/noderb_extension/libuv/test/test-getaddrinfo.c +11 -8
  69. data/ext/noderb_extension/libuv/test/test-gethostbyname.c +8 -9
  70. data/ext/noderb_extension/libuv/test/test-getsockname.c +142 -16
  71. data/ext/noderb_extension/libuv/test/test-idle.c +4 -3
  72. data/ext/noderb_extension/libuv/test/test-list.h +29 -2
  73. data/ext/noderb_extension/libuv/test/test-loop-handles.c +9 -8
  74. data/ext/noderb_extension/libuv/test/test-ping-pong.c +9 -9
  75. data/ext/noderb_extension/libuv/test/test-pipe-bind-error.c +18 -14
  76. data/ext/noderb_extension/libuv/test/test-ref.c +17 -16
  77. data/ext/noderb_extension/libuv/test/test-shutdown-eof.c +5 -5
  78. data/ext/noderb_extension/libuv/test/test-spawn.c +17 -17
  79. data/ext/noderb_extension/libuv/test/test-tcp-bind-error.c +24 -18
  80. data/ext/noderb_extension/libuv/test/test-tcp-bind6-error.c +19 -14
  81. data/ext/noderb_extension/libuv/test/test-tcp-writealot.c +6 -5
  82. data/ext/noderb_extension/libuv/test/test-threadpool.c +59 -0
  83. data/ext/noderb_extension/libuv/test/test-timer-again.c +15 -12
  84. data/ext/noderb_extension/libuv/test/test-timer.c +8 -8
  85. data/ext/noderb_extension/libuv/test/test-udp-dgram-too-big.c +88 -0
  86. data/ext/noderb_extension/libuv/test/test-udp-ipv6.c +158 -0
  87. data/ext/noderb_extension/libuv/test/test-udp-send-and-recv.c +210 -0
  88. data/ext/noderb_extension/libuv/{all.gyp → uv.gyp} +75 -77
  89. data/ext/noderb_extension/libuv/vcbuild.bat +93 -0
  90. data/ext/noderb_extension/noderb.c +13 -0
  91. data/ext/noderb_extension/noderb_common.h +2 -1
  92. data/ext/noderb_extension/noderb_defer.c +54 -0
  93. data/ext/noderb_extension/noderb_defer.h +15 -0
  94. data/ext/noderb_extension/noderb_dns.c +1 -1
  95. data/ext/noderb_extension/noderb_fs.c +277 -0
  96. data/ext/noderb_extension/noderb_fs.h +27 -0
  97. data/ext/noderb_extension/noderb_process.c +5 -5
  98. data/ext/noderb_extension/noderb_tcp.c +10 -6
  99. data/ext/noderb_extension/noderb_timers.c +1 -1
  100. data/ext/noderb_extension/noderb_tools.c +42 -8
  101. data/ext/noderb_extension/noderb_tools.h +3 -1
  102. data/lib/noderb/defer.rb +25 -0
  103. data/lib/noderb/file.rb +119 -0
  104. data/lib/noderb/fs.rb +72 -0
  105. data/lib/noderb/version.rb +1 -1
  106. data/lib/noderb.rb +8 -0
  107. metadata +102 -266
  108. data/ext/noderb_extension/libuv/BSDmakefile +0 -2
  109. data/ext/noderb_extension/libuv/create-msvs-files.bat +0 -21
  110. data/ext/noderb_extension/libuv/deps/pthread-win32/ANNOUNCE +0 -482
  111. data/ext/noderb_extension/libuv/deps/pthread-win32/BUGS +0 -141
  112. data/ext/noderb_extension/libuv/deps/pthread-win32/Bmakefile +0 -268
  113. data/ext/noderb_extension/libuv/deps/pthread-win32/CONTRIBUTORS +0 -140
  114. data/ext/noderb_extension/libuv/deps/pthread-win32/COPYING +0 -150
  115. data/ext/noderb_extension/libuv/deps/pthread-win32/COPYING.LIB +0 -504
  116. data/ext/noderb_extension/libuv/deps/pthread-win32/ChangeLog +0 -5194
  117. data/ext/noderb_extension/libuv/deps/pthread-win32/FAQ +0 -451
  118. data/ext/noderb_extension/libuv/deps/pthread-win32/GNUmakefile +0 -593
  119. data/ext/noderb_extension/libuv/deps/pthread-win32/MAINTAINERS +0 -4
  120. data/ext/noderb_extension/libuv/deps/pthread-win32/Makefile +0 -516
  121. data/ext/noderb_extension/libuv/deps/pthread-win32/NEWS +0 -1245
  122. data/ext/noderb_extension/libuv/deps/pthread-win32/Nmakefile +0 -24
  123. data/ext/noderb_extension/libuv/deps/pthread-win32/Nmakefile.tests +0 -260
  124. data/ext/noderb_extension/libuv/deps/pthread-win32/PROGRESS +0 -4
  125. data/ext/noderb_extension/libuv/deps/pthread-win32/README +0 -601
  126. data/ext/noderb_extension/libuv/deps/pthread-win32/README.Borland +0 -57
  127. data/ext/noderb_extension/libuv/deps/pthread-win32/README.CV +0 -3036
  128. data/ext/noderb_extension/libuv/deps/pthread-win32/README.NONPORTABLE +0 -783
  129. data/ext/noderb_extension/libuv/deps/pthread-win32/README.Watcom +0 -62
  130. data/ext/noderb_extension/libuv/deps/pthread-win32/README.WinCE +0 -6
  131. data/ext/noderb_extension/libuv/deps/pthread-win32/TODO +0 -7
  132. data/ext/noderb_extension/libuv/deps/pthread-win32/WinCE-PORT +0 -222
  133. data/ext/noderb_extension/libuv/deps/pthread-win32/attr.c +0 -53
  134. data/ext/noderb_extension/libuv/deps/pthread-win32/autostatic.c +0 -69
  135. data/ext/noderb_extension/libuv/deps/pthread-win32/barrier.c +0 -47
  136. data/ext/noderb_extension/libuv/deps/pthread-win32/build/all.gyp +0 -207
  137. data/ext/noderb_extension/libuv/deps/pthread-win32/builddmc.bat +0 -9
  138. data/ext/noderb_extension/libuv/deps/pthread-win32/cancel.c +0 -44
  139. data/ext/noderb_extension/libuv/deps/pthread-win32/cleanup.c +0 -148
  140. data/ext/noderb_extension/libuv/deps/pthread-win32/condvar.c +0 -50
  141. data/ext/noderb_extension/libuv/deps/pthread-win32/config.h +0 -153
  142. data/ext/noderb_extension/libuv/deps/pthread-win32/context.h +0 -74
  143. data/ext/noderb_extension/libuv/deps/pthread-win32/create.c +0 -308
  144. data/ext/noderb_extension/libuv/deps/pthread-win32/dll.c +0 -92
  145. data/ext/noderb_extension/libuv/deps/pthread-win32/errno.c +0 -94
  146. data/ext/noderb_extension/libuv/deps/pthread-win32/exit.c +0 -44
  147. data/ext/noderb_extension/libuv/deps/pthread-win32/fork.c +0 -39
  148. data/ext/noderb_extension/libuv/deps/pthread-win32/global.c +0 -107
  149. data/ext/noderb_extension/libuv/deps/pthread-win32/implement.h +0 -944
  150. data/ext/noderb_extension/libuv/deps/pthread-win32/misc.c +0 -50
  151. data/ext/noderb_extension/libuv/deps/pthread-win32/mutex.c +0 -62
  152. data/ext/noderb_extension/libuv/deps/pthread-win32/need_errno.h +0 -145
  153. data/ext/noderb_extension/libuv/deps/pthread-win32/nonportable.c +0 -47
  154. data/ext/noderb_extension/libuv/deps/pthread-win32/private.c +0 -54
  155. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.c +0 -66
  156. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.dsp +0 -142
  157. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.dsw +0 -29
  158. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.h +0 -1368
  159. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_destroy.c +0 -79
  160. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getdetachstate.c +0 -86
  161. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getinheritsched.c +0 -51
  162. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getschedparam.c +0 -52
  163. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getschedpolicy.c +0 -61
  164. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getscope.c +0 -54
  165. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getstackaddr.c +0 -97
  166. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getstacksize.c +0 -100
  167. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_init.c +0 -117
  168. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setdetachstate.c +0 -91
  169. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setinheritsched.c +0 -57
  170. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setschedparam.c +0 -63
  171. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setschedpolicy.c +0 -55
  172. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setscope.c +0 -62
  173. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setstackaddr.c +0 -97
  174. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setstacksize.c +0 -110
  175. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_destroy.c +0 -103
  176. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_init.c +0 -69
  177. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_wait.c +0 -104
  178. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_destroy.c +0 -83
  179. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_getpshared.c +0 -95
  180. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_init.c +0 -85
  181. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_setpshared.c +0 -119
  182. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cancel.c +0 -189
  183. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_destroy.c +0 -253
  184. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_init.c +0 -167
  185. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_signal.c +0 -231
  186. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_wait.c +0 -567
  187. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_destroy.c +0 -86
  188. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_getpshared.c +0 -97
  189. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_init.c +0 -87
  190. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_setpshared.c +0 -117
  191. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_delay_np.c +0 -172
  192. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_detach.c +0 -136
  193. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_equal.c +0 -76
  194. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_exit.c +0 -106
  195. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getconcurrency.c +0 -45
  196. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getschedparam.c +0 -75
  197. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getspecific.c +0 -87
  198. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getunique_np.c +0 -47
  199. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getw32threadhandle_np.c +0 -65
  200. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_join.c +0 -157
  201. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_key_create.c +0 -108
  202. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_key_delete.c +0 -125
  203. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_kill.c +0 -105
  204. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_consistent.c +0 -187
  205. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_destroy.c +0 -148
  206. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_init.c +0 -130
  207. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_lock.c +0 -269
  208. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_timedlock.c +0 -324
  209. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_trylock.c +0 -154
  210. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_unlock.c +0 -175
  211. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_destroy.c +0 -83
  212. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getkind_np.c +0 -44
  213. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getpshared.c +0 -95
  214. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getrobust.c +0 -113
  215. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_gettype.c +0 -56
  216. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_init.c +0 -86
  217. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setkind_np.c +0 -44
  218. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setpshared.c +0 -119
  219. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setrobust.c +0 -119
  220. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_settype.c +0 -143
  221. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_num_processors_np.c +0 -56
  222. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_once.c +0 -79
  223. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_destroy.c +0 -143
  224. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_init.c +0 -109
  225. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_rdlock.c +0 -102
  226. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_timedrdlock.c +0 -109
  227. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_timedwrlock.c +0 -139
  228. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_tryrdlock.c +0 -102
  229. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_trywrlock.c +0 -122
  230. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_unlock.c +0 -93
  231. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_wrlock.c +0 -133
  232. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_destroy.c +0 -84
  233. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_getpshared.c +0 -97
  234. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_init.c +0 -83
  235. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_setpshared.c +0 -120
  236. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_self.c +0 -141
  237. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setcancelstate.c +0 -125
  238. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setcanceltype.c +0 -126
  239. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setconcurrency.c +0 -53
  240. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setschedparam.c +0 -123
  241. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setspecific.c +0 -167
  242. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_destroy.c +0 -111
  243. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_init.c +0 -123
  244. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_lock.c +0 -80
  245. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_trylock.c +0 -77
  246. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_unlock.c +0 -71
  247. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_testcancel.c +0 -103
  248. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_timechange_handler_np.c +0 -108
  249. data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_win32_attach_detach_np.c +0 -258
  250. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_MCS_lock.c +0 -278
  251. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_callUserDestroyRoutines.c +0 -232
  252. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_calloc.c +0 -56
  253. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_cond_check_need_init.c +0 -78
  254. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_getprocessors.c +0 -91
  255. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_is_attr.c +0 -47
  256. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_mutex_check_need_init.c +0 -92
  257. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_new.c +0 -94
  258. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_processInitialize.c +0 -92
  259. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_processTerminate.c +0 -105
  260. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_relmillisecs.c +0 -132
  261. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_reuse.c +0 -151
  262. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_rwlock_cancelwrwait.c +0 -50
  263. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_rwlock_check_need_init.c +0 -77
  264. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_semwait.c +0 -135
  265. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_spinlock_check_need_init.c +0 -78
  266. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_threadDestroy.c +0 -79
  267. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_threadStart.c +0 -357
  268. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_throw.c +0 -189
  269. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_timespec.c +0 -83
  270. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_tkAssocCreate.c +0 -118
  271. data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_tkAssocDestroy.c +0 -114
  272. data/ext/noderb_extension/libuv/deps/pthread-win32/rwlock.c +0 -51
  273. data/ext/noderb_extension/libuv/deps/pthread-win32/sched.c +0 -53
  274. data/ext/noderb_extension/libuv/deps/pthread-win32/sched.h +0 -183
  275. data/ext/noderb_extension/libuv/deps/pthread-win32/sched_get_priority_max.c +0 -134
  276. data/ext/noderb_extension/libuv/deps/pthread-win32/sched_get_priority_min.c +0 -135
  277. data/ext/noderb_extension/libuv/deps/pthread-win32/sched_getscheduler.c +0 -71
  278. data/ext/noderb_extension/libuv/deps/pthread-win32/sched_setscheduler.c +0 -83
  279. data/ext/noderb_extension/libuv/deps/pthread-win32/sched_yield.c +0 -71
  280. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_close.c +0 -58
  281. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_destroy.c +0 -144
  282. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_getvalue.c +0 -110
  283. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_init.c +0 -169
  284. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_open.c +0 -58
  285. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_post.c +0 -128
  286. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_post_multiple.c +0 -142
  287. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_timedwait.c +0 -238
  288. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_trywait.c +0 -117
  289. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_unlink.c +0 -58
  290. data/ext/noderb_extension/libuv/deps/pthread-win32/sem_wait.c +0 -187
  291. data/ext/noderb_extension/libuv/deps/pthread-win32/semaphore.c +0 -69
  292. data/ext/noderb_extension/libuv/deps/pthread-win32/semaphore.h +0 -169
  293. data/ext/noderb_extension/libuv/deps/pthread-win32/signal.c +0 -179
  294. data/ext/noderb_extension/libuv/deps/pthread-win32/spin.c +0 -46
  295. data/ext/noderb_extension/libuv/deps/pthread-win32/sync.c +0 -43
  296. data/ext/noderb_extension/libuv/deps/pthread-win32/tsd.c +0 -44
  297. data/ext/noderb_extension/libuv/deps/pthread-win32/version.rc +0 -388
  298. data/ext/noderb_extension/libuv/deps/pthread-win32/w32_CancelableWait.c +0 -161
  299. data/ext/noderb_extension/libuv/doc/iocp-links.html +0 -574
  300. data/ext/noderb_extension/libuv/src/uv-unix.c +0 -2421
  301. data/ext/noderb_extension/libuv/src/win/ntdll.h +0 -130
  302. /data/ext/noderb_extension/libuv/include/{ev.h → uv-private/ev.h} +0 -0
  303. /data/ext/noderb_extension/libuv/include/{ngx-queue.h → uv-private/ngx-queue.h} +0 -0
  304. /data/ext/noderb_extension/libuv/include/{tree.h → uv-private/tree.h} +0 -0
  305. /data/ext/noderb_extension/libuv/src/{uv-cygwin.c → unix/cygwin.c} +0 -0
  306. /data/ext/noderb_extension/libuv/src/{uv-darwin.c → unix/darwin.c} +0 -0
  307. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/Changes +0 -0
  308. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/LICENSE +0 -0
  309. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/Makefile.am +0 -0
  310. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/aclocal.m4 +0 -0
  311. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/autogen.sh +0 -0
  312. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config.h.in +0 -0
  313. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_cygwin.h +0 -0
  314. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_freebsd.h +0 -0
  315. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_sunos.h +0 -0
  316. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/configure.ac +0 -0
  317. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/demo.c +0 -0
  318. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/ecb.h +0 -0
  319. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/eio.3 +0 -0
  320. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/eio.pod +0 -0
  321. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/libeio.m4 +0 -0
  322. /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/xthread.h +0 -0
  323. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/Changes +0 -0
  324. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/LICENSE +0 -0
  325. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/Makefile.am +0 -0
  326. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/Makefile.in +0 -0
  327. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/README +0 -0
  328. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/aclocal.m4 +0 -0
  329. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/autogen.sh +0 -0
  330. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config.guess +0 -0
  331. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config.h.in +0 -0
  332. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config.sub +0 -0
  333. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_cygwin.h +0 -0
  334. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_darwin.h +0 -0
  335. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_freebsd.h +0 -0
  336. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_sunos.h +0 -0
  337. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/configure +0 -0
  338. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/configure.ac +0 -0
  339. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/depcomp +0 -0
  340. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev++.h +0 -0
  341. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev.3 +0 -0
  342. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev.c +0 -0
  343. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev.pod +0 -0
  344. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_epoll.c +0 -0
  345. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_kqueue.c +0 -0
  346. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_poll.c +0 -0
  347. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_port.c +0 -0
  348. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_select.c +0 -0
  349. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_vars.h +0 -0
  350. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_win32.c +0 -0
  351. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_wrap.h +0 -0
  352. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/event.c +0 -0
  353. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/event.h +0 -0
  354. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/install-sh +0 -0
  355. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/libev.m4 +0 -0
  356. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ltmain.sh +0 -0
  357. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/missing +0 -0
  358. /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/mkinstalldirs +0 -0
  359. /data/ext/noderb_extension/libuv/src/{uv-freebsd.c → unix/freebsd.c} +0 -0
  360. /data/ext/noderb_extension/libuv/src/{uv-linux.c → unix/linux.c} +0 -0
  361. /data/ext/noderb_extension/libuv/src/{uv-sunos.c → unix/sunos.c} +0 -0
@@ -1,91 +0,0 @@
1
- /*
2
- * ptw32_getprocessors.c
3
- *
4
- * Description:
5
- * This translation unit implements routines which are private to
6
- * the implementation and may be used throughout it.
7
- *
8
- * --------------------------------------------------------------------------
9
- *
10
- * Pthreads-win32 - POSIX Threads Library for Win32
11
- * Copyright(C) 1998 John E. Bossom
12
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
13
- *
14
- * Contact Email: rpj@callisto.canberra.edu.au
15
- *
16
- * The current list of contributors is contained
17
- * in the file CONTRIBUTORS included with the source
18
- * code distribution. The list can also be seen at the
19
- * following World Wide Web location:
20
- * http://sources.redhat.com/pthreads-win32/contributors.html
21
- *
22
- * This library is free software; you can redistribute it and/or
23
- * modify it under the terms of the GNU Lesser General Public
24
- * License as published by the Free Software Foundation; either
25
- * version 2 of the License, or (at your option) any later version.
26
- *
27
- * This library 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 GNU
30
- * Lesser General Public License for more details.
31
- *
32
- * You should have received a copy of the GNU Lesser General Public
33
- * License along with this library in the file COPYING.LIB;
34
- * if not, write to the Free Software Foundation, Inc.,
35
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
36
- */
37
-
38
- #include "pthread.h"
39
- #include "implement.h"
40
-
41
-
42
- /*
43
- * ptw32_getprocessors()
44
- *
45
- * Get the number of CPUs available to the process.
46
- *
47
- * If the available number of CPUs is 1 then pthread_spin_lock()
48
- * will block rather than spin if the lock is already owned.
49
- *
50
- * pthread_spin_init() calls this routine when initialising
51
- * a spinlock. If the number of available processors changes
52
- * (after a call to SetProcessAffinityMask()) then only
53
- * newly initialised spinlocks will notice.
54
- */
55
- int
56
- ptw32_getprocessors (int *count)
57
- {
58
- DWORD_PTR vProcessCPUs;
59
- DWORD_PTR vSystemCPUs;
60
- int result = 0;
61
-
62
- #if defined(NEED_PROCESS_AFFINITY_MASK)
63
-
64
- *count = 1;
65
-
66
- #else
67
-
68
- if (GetProcessAffinityMask (GetCurrentProcess (),
69
- &vProcessCPUs, &vSystemCPUs))
70
- {
71
- DWORD_PTR bit;
72
- int CPUs = 0;
73
-
74
- for (bit = 1; bit != 0; bit <<= 1)
75
- {
76
- if (vProcessCPUs & bit)
77
- {
78
- CPUs++;
79
- }
80
- }
81
- *count = CPUs;
82
- }
83
- else
84
- {
85
- result = EAGAIN;
86
- }
87
-
88
- #endif
89
-
90
- return (result);
91
- }
@@ -1,47 +0,0 @@
1
- /*
2
- * ptw32_is_attr.c
3
- *
4
- * Description:
5
- * This translation unit implements operations on thread attribute objects.
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
-
40
- int
41
- ptw32_is_attr (const pthread_attr_t * attr)
42
- {
43
- /* Return 0 if the attr object is valid, non-zero otherwise. */
44
-
45
- return (attr == NULL ||
46
- *attr == NULL || (*attr)->valid != PTW32_ATTR_VALID);
47
- }
@@ -1,92 +0,0 @@
1
- /*
2
- * ptw32_mutex_check_need_init.c
3
- *
4
- * Description:
5
- * This translation unit implements mutual exclusion (mutex) primitives.
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
-
40
- static struct pthread_mutexattr_t_ ptw32_recursive_mutexattr_s =
41
- {PTHREAD_PROCESS_PRIVATE, PTHREAD_MUTEX_RECURSIVE};
42
- static struct pthread_mutexattr_t_ ptw32_errorcheck_mutexattr_s =
43
- {PTHREAD_PROCESS_PRIVATE, PTHREAD_MUTEX_ERRORCHECK};
44
- static pthread_mutexattr_t ptw32_recursive_mutexattr = &ptw32_recursive_mutexattr_s;
45
- static pthread_mutexattr_t ptw32_errorcheck_mutexattr = &ptw32_errorcheck_mutexattr_s;
46
-
47
-
48
- int
49
- ptw32_mutex_check_need_init (pthread_mutex_t * mutex)
50
- {
51
- register int result = 0;
52
- register pthread_mutex_t mtx;
53
- ptw32_mcs_local_node_t node;
54
-
55
- ptw32_mcs_lock_acquire(&ptw32_mutex_test_init_lock, &node);
56
-
57
- /*
58
- * We got here possibly under race
59
- * conditions. Check again inside the critical section
60
- * and only initialise if the mutex is valid (not been destroyed).
61
- * If a static mutex has been destroyed, the application can
62
- * re-initialise it only by calling pthread_mutex_init()
63
- * explicitly.
64
- */
65
- mtx = *mutex;
66
-
67
- if (mtx == PTHREAD_MUTEX_INITIALIZER)
68
- {
69
- result = pthread_mutex_init (mutex, NULL);
70
- }
71
- else if (mtx == PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
72
- {
73
- result = pthread_mutex_init (mutex, &ptw32_recursive_mutexattr);
74
- }
75
- else if (mtx == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER)
76
- {
77
- result = pthread_mutex_init (mutex, &ptw32_errorcheck_mutexattr);
78
- }
79
- else if (mtx == NULL)
80
- {
81
- /*
82
- * The mutex has been destroyed while we were waiting to
83
- * initialise it, so the operation that caused the
84
- * auto-initialisation should fail.
85
- */
86
- result = EINVAL;
87
- }
88
-
89
- ptw32_mcs_lock_release(&node);
90
-
91
- return (result);
92
- }
@@ -1,94 +0,0 @@
1
- /*
2
- * ptw32_new.c
3
- *
4
- * Description:
5
- * This translation unit implements miscellaneous thread functions.
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
-
40
-
41
- pthread_t
42
- ptw32_new (void)
43
- {
44
- pthread_t t;
45
- pthread_t nil = {NULL, 0};
46
- ptw32_thread_t * tp;
47
-
48
- /*
49
- * If there's a reusable pthread_t then use it.
50
- */
51
- t = ptw32_threadReusePop ();
52
-
53
- if (NULL != t.p)
54
- {
55
- tp = (ptw32_thread_t *) t.p;
56
- }
57
- else
58
- {
59
- /* No reuse threads available */
60
- tp = (ptw32_thread_t *) calloc (1, sizeof(ptw32_thread_t));
61
-
62
- if (tp == NULL)
63
- {
64
- return nil;
65
- }
66
-
67
- /* ptHandle.p needs to point to it's parent ptw32_thread_t. */
68
- t.p = tp->ptHandle.p = tp;
69
- t.x = tp->ptHandle.x = 0;
70
- }
71
-
72
- /* Set default state. */
73
- tp->seqNumber = ++ptw32_threadSeqNumber;
74
- tp->sched_priority = THREAD_PRIORITY_NORMAL;
75
- tp->detachState = PTHREAD_CREATE_JOINABLE;
76
- tp->cancelState = PTHREAD_CANCEL_ENABLE;
77
- tp->cancelType = PTHREAD_CANCEL_DEFERRED;
78
- tp->stateLock = 0;
79
- tp->threadLock = 0;
80
- tp->robustMxListLock = 0;
81
- tp->robustMxList = NULL;
82
- tp->cancelEvent = CreateEvent (0, (int) PTW32_TRUE, /* manualReset */
83
- (int) PTW32_FALSE, /* setSignaled */
84
- NULL);
85
-
86
- if (tp->cancelEvent == NULL)
87
- {
88
- ptw32_threadReusePush (tp->ptHandle);
89
- return nil;
90
- }
91
-
92
- return t;
93
-
94
- }
@@ -1,92 +0,0 @@
1
- /*
2
- * ptw32_processInitialize.c
3
- *
4
- * Description:
5
- * This translation unit implements routines which are private to
6
- * the implementation and may be used throughout it.
7
- *
8
- * --------------------------------------------------------------------------
9
- *
10
- * Pthreads-win32 - POSIX Threads Library for Win32
11
- * Copyright(C) 1998 John E. Bossom
12
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
13
- *
14
- * Contact Email: rpj@callisto.canberra.edu.au
15
- *
16
- * The current list of contributors is contained
17
- * in the file CONTRIBUTORS included with the source
18
- * code distribution. The list can also be seen at the
19
- * following World Wide Web location:
20
- * http://sources.redhat.com/pthreads-win32/contributors.html
21
- *
22
- * This library is free software; you can redistribute it and/or
23
- * modify it under the terms of the GNU Lesser General Public
24
- * License as published by the Free Software Foundation; either
25
- * version 2 of the License, or (at your option) any later version.
26
- *
27
- * This library 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 GNU
30
- * Lesser General Public License for more details.
31
- *
32
- * You should have received a copy of the GNU Lesser General Public
33
- * License along with this library in the file COPYING.LIB;
34
- * if not, write to the Free Software Foundation, Inc.,
35
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
36
- */
37
-
38
- #include "pthread.h"
39
- #include "implement.h"
40
-
41
-
42
- int
43
- ptw32_processInitialize (void)
44
- /*
45
- * ------------------------------------------------------
46
- * DOCPRIVATE
47
- * This function performs process wide initialization for
48
- * the pthread library.
49
- *
50
- * PARAMETERS
51
- * N/A
52
- *
53
- * DESCRIPTION
54
- * This function performs process wide initialization for
55
- * the pthread library.
56
- * If successful, this routine sets the global variable
57
- * ptw32_processInitialized to TRUE.
58
- *
59
- * RESULTS
60
- * TRUE if successful,
61
- * FALSE otherwise
62
- *
63
- * ------------------------------------------------------
64
- */
65
- {
66
- if (ptw32_processInitialized)
67
- {
68
- /*
69
- * Ignore if already initialized. this is useful for
70
- * programs that uses a non-dll pthread
71
- * library. Such programs must call ptw32_processInitialize() explicitly,
72
- * since this initialization routine is automatically called only when
73
- * the dll is loaded.
74
- */
75
- return PTW32_TRUE;
76
- }
77
-
78
- ptw32_processInitialized = PTW32_TRUE;
79
-
80
- /*
81
- * Initialize Keys
82
- */
83
- if ((pthread_key_create (&ptw32_selfThreadKey, NULL) != 0) ||
84
- (pthread_key_create (&ptw32_cleanupKey, NULL) != 0))
85
- {
86
-
87
- ptw32_processTerminate ();
88
- }
89
-
90
- return (ptw32_processInitialized);
91
-
92
- } /* processInitialize */
@@ -1,105 +0,0 @@
1
- /*
2
- * ptw32_processTerminate.c
3
- *
4
- * Description:
5
- * This translation unit implements routines which are private to
6
- * the implementation and may be used throughout it.
7
- *
8
- * --------------------------------------------------------------------------
9
- *
10
- * Pthreads-win32 - POSIX Threads Library for Win32
11
- * Copyright(C) 1998 John E. Bossom
12
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
13
- *
14
- * Contact Email: rpj@callisto.canberra.edu.au
15
- *
16
- * The current list of contributors is contained
17
- * in the file CONTRIBUTORS included with the source
18
- * code distribution. The list can also be seen at the
19
- * following World Wide Web location:
20
- * http://sources.redhat.com/pthreads-win32/contributors.html
21
- *
22
- * This library is free software; you can redistribute it and/or
23
- * modify it under the terms of the GNU Lesser General Public
24
- * License as published by the Free Software Foundation; either
25
- * version 2 of the License, or (at your option) any later version.
26
- *
27
- * This library 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 GNU
30
- * Lesser General Public License for more details.
31
- *
32
- * You should have received a copy of the GNU Lesser General Public
33
- * License along with this library in the file COPYING.LIB;
34
- * if not, write to the Free Software Foundation, Inc.,
35
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
36
- */
37
-
38
- #include "pthread.h"
39
- #include "implement.h"
40
-
41
-
42
- void
43
- ptw32_processTerminate (void)
44
- /*
45
- * ------------------------------------------------------
46
- * DOCPRIVATE
47
- * This function performs process wide termination for
48
- * the pthread library.
49
- *
50
- * PARAMETERS
51
- * N/A
52
- *
53
- * DESCRIPTION
54
- * This function performs process wide termination for
55
- * the pthread library.
56
- * This routine sets the global variable
57
- * ptw32_processInitialized to FALSE
58
- *
59
- * RESULTS
60
- * N/A
61
- *
62
- * ------------------------------------------------------
63
- */
64
- {
65
- if (ptw32_processInitialized)
66
- {
67
- ptw32_thread_t * tp, * tpNext;
68
- ptw32_mcs_local_node_t node;
69
-
70
- if (ptw32_selfThreadKey != NULL)
71
- {
72
- /*
73
- * Release ptw32_selfThreadKey
74
- */
75
- pthread_key_delete (ptw32_selfThreadKey);
76
-
77
- ptw32_selfThreadKey = NULL;
78
- }
79
-
80
- if (ptw32_cleanupKey != NULL)
81
- {
82
- /*
83
- * Release ptw32_cleanupKey
84
- */
85
- pthread_key_delete (ptw32_cleanupKey);
86
-
87
- ptw32_cleanupKey = NULL;
88
- }
89
-
90
- ptw32_mcs_lock_acquire(&ptw32_thread_reuse_lock, &node);
91
-
92
- tp = ptw32_threadReuseTop;
93
- while (tp != PTW32_THREAD_REUSE_EMPTY)
94
- {
95
- tpNext = tp->prevReuse;
96
- free (tp);
97
- tp = tpNext;
98
- }
99
-
100
- ptw32_mcs_lock_release(&node);
101
-
102
- ptw32_processInitialized = PTW32_FALSE;
103
- }
104
-
105
- } /* processTerminate */
@@ -1,132 +0,0 @@
1
- /*
2
- * ptw32_relmillisecs.c
3
- *
4
- * Description:
5
- * This translation unit implements miscellaneous thread functions.
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
- #if !defined(NEED_FTIME)
40
- #include <sys/timeb.h>
41
- #endif
42
-
43
-
44
- #if defined(PTW32_BUILD_INLINED)
45
- INLINE
46
- #endif /* PTW32_BUILD_INLINED */
47
- DWORD
48
- ptw32_relmillisecs (const struct timespec * abstime)
49
- {
50
- const int64_t NANOSEC_PER_MILLISEC = 1000000;
51
- const int64_t MILLISEC_PER_SEC = 1000;
52
- DWORD milliseconds;
53
- int64_t tmpAbsMilliseconds;
54
- int64_t tmpCurrMilliseconds;
55
- #if defined(NEED_FTIME)
56
- struct timespec currSysTime;
57
- FILETIME ft;
58
- SYSTEMTIME st;
59
- #else /* ! NEED_FTIME */
60
- #if ( defined(_MSC_VER) && _MSC_VER >= 1300 ) || \
61
- ( (defined(__MINGW64__) || defined(__MINGW32__)) && __MSVCRT_VERSION__ >= 0x0601 )
62
- struct __timeb64 currSysTime;
63
- #else
64
- struct _timeb currSysTime;
65
- #endif
66
- #endif /* NEED_FTIME */
67
-
68
-
69
- /*
70
- * Calculate timeout as milliseconds from current system time.
71
- */
72
-
73
- /*
74
- * subtract current system time from abstime in a way that checks
75
- * that abstime is never in the past, or is never equivalent to the
76
- * defined INFINITE value (0xFFFFFFFF).
77
- *
78
- * Assume all integers are unsigned, i.e. cannot test if less than 0.
79
- */
80
- tmpAbsMilliseconds = (int64_t)abstime->tv_sec * MILLISEC_PER_SEC;
81
- tmpAbsMilliseconds += ((int64_t)abstime->tv_nsec + (NANOSEC_PER_MILLISEC/2)) / NANOSEC_PER_MILLISEC;
82
-
83
- /* get current system time */
84
-
85
- #if defined(NEED_FTIME)
86
-
87
- GetSystemTime(&st);
88
- SystemTimeToFileTime(&st, &ft);
89
- /*
90
- * GetSystemTimeAsFileTime(&ft); would be faster,
91
- * but it does not exist on WinCE
92
- */
93
-
94
- ptw32_filetime_to_timespec(&ft, &currSysTime);
95
-
96
- tmpCurrMilliseconds = (int64_t)currSysTime.tv_sec * MILLISEC_PER_SEC;
97
- tmpCurrMilliseconds += ((int64_t)currSysTime.tv_nsec + (NANOSEC_PER_MILLISEC/2))
98
- / NANOSEC_PER_MILLISEC;
99
-
100
- #else /* ! NEED_FTIME */
101
-
102
- #if defined(_MSC_VER) && _MSC_VER >= 1400
103
- _ftime64_s(&currSysTime);
104
- #elif ( defined(_MSC_VER) && _MSC_VER >= 1300 ) || \
105
- ( (defined(__MINGW64__) || defined(__MINGW32__)) && __MSVCRT_VERSION__ >= 0x0601 )
106
- _ftime64(&currSysTime);
107
- #else
108
- _ftime(&currSysTime);
109
- #endif
110
-
111
- tmpCurrMilliseconds = (int64_t) currSysTime.time * MILLISEC_PER_SEC;
112
- tmpCurrMilliseconds += (int64_t) currSysTime.millitm;
113
-
114
- #endif /* NEED_FTIME */
115
-
116
- if (tmpAbsMilliseconds > tmpCurrMilliseconds)
117
- {
118
- milliseconds = (DWORD) (tmpAbsMilliseconds - tmpCurrMilliseconds);
119
- if (milliseconds == INFINITE)
120
- {
121
- /* Timeouts must be finite */
122
- milliseconds--;
123
- }
124
- }
125
- else
126
- {
127
- /* The abstime given is in the past */
128
- milliseconds = 0;
129
- }
130
-
131
- return milliseconds;
132
- }