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,135 +0,0 @@
1
- /*
2
- * sched_get_priority_min.c
3
- *
4
- * Description:
5
- * POSIX thread functions that deal with thread scheduling.
6
- *
7
- * --------------------------------------------------------------------------
8
- *
9
- * Pthreads-win32 - POSIX Threads Library for Win32
10
- * Copyright(C) 1998 John E. Bossom
11
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
12
- *
13
- * Contact Email: rpj@callisto.canberra.edu.au
14
- *
15
- * The current list of contributors is contained
16
- * in the file CONTRIBUTORS included with the source
17
- * code distribution. The list can also be seen at the
18
- * following World Wide Web location:
19
- * http://sources.redhat.com/pthreads-win32/contributors.html
20
- *
21
- * This library is free software; you can redistribute it and/or
22
- * modify it under the terms of the GNU Lesser General Public
23
- * License as published by the Free Software Foundation; either
24
- * version 2 of the License, or (at your option) any later version.
25
- *
26
- * This library is distributed in the hope that it will be useful,
27
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29
- * Lesser General Public License for more details.
30
- *
31
- * You should have received a copy of the GNU Lesser General Public
32
- * License along with this library in the file COPYING.LIB;
33
- * if not, write to the Free Software Foundation, Inc.,
34
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
35
- */
36
-
37
- #include "pthread.h"
38
- #include "implement.h"
39
- #include "sched.h"
40
-
41
- /*
42
- * On Windows98, THREAD_PRIORITY_LOWEST is (-2) and
43
- * THREAD_PRIORITY_HIGHEST is 2, and everything works just fine.
44
- *
45
- * On WinCE 3.0, it so happen that THREAD_PRIORITY_LOWEST is 5
46
- * and THREAD_PRIORITY_HIGHEST is 1 (yes, I know, it is funny:
47
- * highest priority use smaller numbers) and the following happens:
48
- *
49
- * sched_get_priority_min() returns 5
50
- * sched_get_priority_max() returns 1
51
- *
52
- * The following table shows the base priority levels for combinations
53
- * of priority class and priority value in Win32.
54
- *
55
- * Process Priority Class Thread Priority Level
56
- * -----------------------------------------------------------------
57
- * 1 IDLE_PRIORITY_CLASS THREAD_PRIORITY_IDLE
58
- * 1 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_IDLE
59
- * 1 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_IDLE
60
- * 1 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_IDLE
61
- * 1 HIGH_PRIORITY_CLASS THREAD_PRIORITY_IDLE
62
- * 2 IDLE_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
63
- * 3 IDLE_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
64
- * 4 IDLE_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
65
- * 4 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
66
- * 5 IDLE_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
67
- * 5 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
68
- * 5 Background NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
69
- * 6 IDLE_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
70
- * 6 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
71
- * 6 Background NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
72
- * 7 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
73
- * 7 Background NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
74
- * 7 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
75
- * 8 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
76
- * 8 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
77
- * 8 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
78
- * 8 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
79
- * 9 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
80
- * 9 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
81
- * 9 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
82
- * 10 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
83
- * 10 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
84
- * 11 Foreground NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
85
- * 11 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
86
- * 11 HIGH_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
87
- * 12 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
88
- * 12 HIGH_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
89
- * 13 HIGH_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
90
- * 14 HIGH_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
91
- * 15 HIGH_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
92
- * 15 HIGH_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
93
- * 15 IDLE_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
94
- * 15 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
95
- * 15 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
96
- * 15 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
97
- * 16 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_IDLE
98
- * 17 REALTIME_PRIORITY_CLASS -7
99
- * 18 REALTIME_PRIORITY_CLASS -6
100
- * 19 REALTIME_PRIORITY_CLASS -5
101
- * 20 REALTIME_PRIORITY_CLASS -4
102
- * 21 REALTIME_PRIORITY_CLASS -3
103
- * 22 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
104
- * 23 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
105
- * 24 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
106
- * 25 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
107
- * 26 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
108
- * 27 REALTIME_PRIORITY_CLASS 3
109
- * 28 REALTIME_PRIORITY_CLASS 4
110
- * 29 REALTIME_PRIORITY_CLASS 5
111
- * 30 REALTIME_PRIORITY_CLASS 6
112
- * 31 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
113
- *
114
- * Windows NT: Values -7, -6, -5, -4, -3, 3, 4, 5, and 6 are not supported.
115
- *
116
- */
117
-
118
-
119
- int
120
- sched_get_priority_min (int policy)
121
- {
122
- if (policy < SCHED_MIN || policy > SCHED_MAX)
123
- {
124
- errno = EINVAL;
125
- return -1;
126
- }
127
-
128
- #if (THREAD_PRIORITY_LOWEST > THREAD_PRIORITY_NORMAL)
129
- /* WinCE? */
130
- return PTW32_MIN (THREAD_PRIORITY_IDLE, THREAD_PRIORITY_TIME_CRITICAL);
131
- #else
132
- /* This is independent of scheduling policy in Win32. */
133
- return PTW32_MIN (THREAD_PRIORITY_IDLE, THREAD_PRIORITY_TIME_CRITICAL);
134
- #endif
135
- }
@@ -1,71 +0,0 @@
1
- /*
2
- * sched_getscheduler.c
3
- *
4
- * Description:
5
- * POSIX thread functions that deal with thread scheduling.
6
- *
7
- * --------------------------------------------------------------------------
8
- *
9
- * Pthreads-win32 - POSIX Threads Library for Win32
10
- * Copyright(C) 1998 John E. Bossom
11
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
12
- *
13
- * Contact Email: rpj@callisto.canberra.edu.au
14
- *
15
- * The current list of contributors is contained
16
- * in the file CONTRIBUTORS included with the source
17
- * code distribution. The list can also be seen at the
18
- * following World Wide Web location:
19
- * http://sources.redhat.com/pthreads-win32/contributors.html
20
- *
21
- * This library is free software; you can redistribute it and/or
22
- * modify it under the terms of the GNU Lesser General Public
23
- * License as published by the Free Software Foundation; either
24
- * version 2 of the License, or (at your option) any later version.
25
- *
26
- * This library is distributed in the hope that it will be useful,
27
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29
- * Lesser General Public License for more details.
30
- *
31
- * You should have received a copy of the GNU Lesser General Public
32
- * License along with this library in the file COPYING.LIB;
33
- * if not, write to the Free Software Foundation, Inc.,
34
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
35
- */
36
-
37
- #include "pthread.h"
38
- #include "implement.h"
39
- #include "sched.h"
40
-
41
- int
42
- sched_getscheduler (pid_t pid)
43
- {
44
- /*
45
- * Win32 only has one policy which we call SCHED_OTHER.
46
- * However, we try to provide other valid side-effects
47
- * such as EPERM and ESRCH errors.
48
- */
49
- if (0 != pid)
50
- {
51
- int selfPid = (int) GetCurrentProcessId ();
52
-
53
- if (pid != selfPid)
54
- {
55
- HANDLE h =
56
- OpenProcess (PROCESS_QUERY_INFORMATION, PTW32_FALSE, (DWORD) pid);
57
-
58
- if (NULL == h)
59
- {
60
- errno =
61
- (GetLastError () ==
62
- (0xFF & ERROR_ACCESS_DENIED)) ? EPERM : ESRCH;
63
- return -1;
64
- }
65
- else
66
- CloseHandle(h);
67
- }
68
- }
69
-
70
- return SCHED_OTHER;
71
- }
@@ -1,83 +0,0 @@
1
- /*
2
- * sched_setscheduler.c
3
- *
4
- * Description:
5
- * POSIX thread functions that deal with thread scheduling.
6
- *
7
- * --------------------------------------------------------------------------
8
- *
9
- * Pthreads-win32 - POSIX Threads Library for Win32
10
- * Copyright(C) 1998 John E. Bossom
11
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
12
- *
13
- * Contact Email: rpj@callisto.canberra.edu.au
14
- *
15
- * The current list of contributors is contained
16
- * in the file CONTRIBUTORS included with the source
17
- * code distribution. The list can also be seen at the
18
- * following World Wide Web location:
19
- * http://sources.redhat.com/pthreads-win32/contributors.html
20
- *
21
- * This library is free software; you can redistribute it and/or
22
- * modify it under the terms of the GNU Lesser General Public
23
- * License as published by the Free Software Foundation; either
24
- * version 2 of the License, or (at your option) any later version.
25
- *
26
- * This library is distributed in the hope that it will be useful,
27
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29
- * Lesser General Public License for more details.
30
- *
31
- * You should have received a copy of the GNU Lesser General Public
32
- * License along with this library in the file COPYING.LIB;
33
- * if not, write to the Free Software Foundation, Inc.,
34
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
35
- */
36
-
37
- #include "pthread.h"
38
- #include "implement.h"
39
- #include "sched.h"
40
-
41
- int
42
- sched_setscheduler (pid_t pid, int policy)
43
- {
44
- /*
45
- * Win32 only has one policy which we call SCHED_OTHER.
46
- * However, we try to provide other valid side-effects
47
- * such as EPERM and ESRCH errors. Choosing to check
48
- * for a valid policy last allows us to get the most value out
49
- * of this function.
50
- */
51
- if (0 != pid)
52
- {
53
- int selfPid = (int) GetCurrentProcessId ();
54
-
55
- if (pid != selfPid)
56
- {
57
- HANDLE h =
58
- OpenProcess (PROCESS_SET_INFORMATION, PTW32_FALSE, (DWORD) pid);
59
-
60
- if (NULL == h)
61
- {
62
- errno =
63
- (GetLastError () ==
64
- (0xFF & ERROR_ACCESS_DENIED)) ? EPERM : ESRCH;
65
- return -1;
66
- }
67
- else
68
- CloseHandle(h);
69
- }
70
- }
71
-
72
- if (SCHED_OTHER != policy)
73
- {
74
- errno = ENOSYS;
75
- return -1;
76
- }
77
-
78
- /*
79
- * Don't set anything because there is nothing to set.
80
- * Just return the current (the only possible) value.
81
- */
82
- return SCHED_OTHER;
83
- }
@@ -1,71 +0,0 @@
1
- /*
2
- * sched_yield.c
3
- *
4
- * Description:
5
- * POSIX thread functions that deal with thread scheduling.
6
- *
7
- * --------------------------------------------------------------------------
8
- *
9
- * Pthreads-win32 - POSIX Threads Library for Win32
10
- * Copyright(C) 1998 John E. Bossom
11
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
12
- *
13
- * Contact Email: rpj@callisto.canberra.edu.au
14
- *
15
- * The current list of contributors is contained
16
- * in the file CONTRIBUTORS included with the source
17
- * code distribution. The list can also be seen at the
18
- * following World Wide Web location:
19
- * http://sources.redhat.com/pthreads-win32/contributors.html
20
- *
21
- * This library is free software; you can redistribute it and/or
22
- * modify it under the terms of the GNU Lesser General Public
23
- * License as published by the Free Software Foundation; either
24
- * version 2 of the License, or (at your option) any later version.
25
- *
26
- * This library is distributed in the hope that it will be useful,
27
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29
- * Lesser General Public License for more details.
30
- *
31
- * You should have received a copy of the GNU Lesser General Public
32
- * License along with this library in the file COPYING.LIB;
33
- * if not, write to the Free Software Foundation, Inc.,
34
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
35
- */
36
-
37
- #include "pthread.h"
38
- #include "implement.h"
39
- #include "sched.h"
40
-
41
- int
42
- sched_yield (void)
43
- /*
44
- * ------------------------------------------------------
45
- * DOCPUBLIC
46
- * This function indicates that the calling thread is
47
- * willing to give up some time slices to other threads.
48
- *
49
- * PARAMETERS
50
- * N/A
51
- *
52
- *
53
- * DESCRIPTION
54
- * This function indicates that the calling thread is
55
- * willing to give up some time slices to other threads.
56
- * NOTE: Since this is part of POSIX 1003.1b
57
- * (realtime extensions), it is defined as returning
58
- * -1 if an error occurs and sets errno to the actual
59
- * error.
60
- *
61
- * RESULTS
62
- * 0 successfully created semaphore,
63
- * ENOSYS sched_yield not supported,
64
- *
65
- * ------------------------------------------------------
66
- */
67
- {
68
- Sleep (0);
69
-
70
- return 0;
71
- }
@@ -1,58 +0,0 @@
1
- /*
2
- * -------------------------------------------------------------
3
- *
4
- * Module: sem_close.c
5
- *
6
- * Purpose:
7
- * Semaphores aren't actually part of the PThreads standard.
8
- * They are defined by the POSIX Standard:
9
- *
10
- * POSIX 1003.1b-1993 (POSIX.1b)
11
- *
12
- * -------------------------------------------------------------
13
- *
14
- * --------------------------------------------------------------------------
15
- *
16
- * Pthreads-win32 - POSIX Threads Library for Win32
17
- * Copyright(C) 1998 John E. Bossom
18
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
19
- *
20
- * Contact Email: rpj@callisto.canberra.edu.au
21
- *
22
- * The current list of contributors is contained
23
- * in the file CONTRIBUTORS included with the source
24
- * code distribution. The list can also be seen at the
25
- * following World Wide Web location:
26
- * http://sources.redhat.com/pthreads-win32/contributors.html
27
- *
28
- * This library is free software; you can redistribute it and/or
29
- * modify it under the terms of the GNU Lesser General Public
30
- * License as published by the Free Software Foundation; either
31
- * version 2 of the License, or (at your option) any later version.
32
- *
33
- * This library is distributed in the hope that it will be useful,
34
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
35
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
36
- * Lesser General Public License for more details.
37
- *
38
- * You should have received a copy of the GNU Lesser General Public
39
- * License along with this library in the file COPYING.LIB;
40
- * if not, write to the Free Software Foundation, Inc.,
41
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
42
- */
43
-
44
- #include "pthread.h"
45
- #include "semaphore.h"
46
- #include "implement.h"
47
-
48
- /* ignore warning "unreferenced formal parameter" */
49
- #if defined(_MSC_VER)
50
- #pragma warning( disable : 4100 )
51
- #endif
52
-
53
- int
54
- sem_close (sem_t * sem)
55
- {
56
- errno = ENOSYS;
57
- return -1;
58
- } /* sem_close */
@@ -1,144 +0,0 @@
1
- /*
2
- * -------------------------------------------------------------
3
- *
4
- * Module: sem_destroy.c
5
- *
6
- * Purpose:
7
- * Semaphores aren't actually part of the PThreads standard.
8
- * They are defined by the POSIX Standard:
9
- *
10
- * POSIX 1003.1b-1993 (POSIX.1b)
11
- *
12
- * -------------------------------------------------------------
13
- *
14
- * --------------------------------------------------------------------------
15
- *
16
- * Pthreads-win32 - POSIX Threads Library for Win32
17
- * Copyright(C) 1998 John E. Bossom
18
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
19
- *
20
- * Contact Email: rpj@callisto.canberra.edu.au
21
- *
22
- * The current list of contributors is contained
23
- * in the file CONTRIBUTORS included with the source
24
- * code distribution. The list can also be seen at the
25
- * following World Wide Web location:
26
- * http://sources.redhat.com/pthreads-win32/contributors.html
27
- *
28
- * This library is free software; you can redistribute it and/or
29
- * modify it under the terms of the GNU Lesser General Public
30
- * License as published by the Free Software Foundation; either
31
- * version 2 of the License, or (at your option) any later version.
32
- *
33
- * This library is distributed in the hope that it will be useful,
34
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
35
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
36
- * Lesser General Public License for more details.
37
- *
38
- * You should have received a copy of the GNU Lesser General Public
39
- * License along with this library in the file COPYING.LIB;
40
- * if not, write to the Free Software Foundation, Inc.,
41
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
42
- */
43
-
44
- #include "pthread.h"
45
- #include "semaphore.h"
46
- #include "implement.h"
47
-
48
-
49
- int
50
- sem_destroy (sem_t * sem)
51
- /*
52
- * ------------------------------------------------------
53
- * DOCPUBLIC
54
- * This function destroys an unnamed semaphore.
55
- *
56
- * PARAMETERS
57
- * sem
58
- * pointer to an instance of sem_t
59
- *
60
- * DESCRIPTION
61
- * This function destroys an unnamed semaphore.
62
- *
63
- * RESULTS
64
- * 0 successfully destroyed semaphore,
65
- * -1 failed, error in errno
66
- * ERRNO
67
- * EINVAL 'sem' is not a valid semaphore,
68
- * ENOSYS semaphores are not supported,
69
- * EBUSY threads (or processes) are currently
70
- * blocked on 'sem'
71
- *
72
- * ------------------------------------------------------
73
- */
74
- {
75
- int result = 0;
76
- sem_t s = NULL;
77
-
78
- if (sem == NULL || *sem == NULL)
79
- {
80
- result = EINVAL;
81
- }
82
- else
83
- {
84
- s = *sem;
85
-
86
- if ((result = pthread_mutex_lock (&s->lock)) == 0)
87
- {
88
- if (s->value < 0)
89
- {
90
- (void) pthread_mutex_unlock (&s->lock);
91
- result = EBUSY;
92
- }
93
- else
94
- {
95
- /* There are no threads currently blocked on this semaphore. */
96
-
97
- if (!CloseHandle (s->sem))
98
- {
99
- (void) pthread_mutex_unlock (&s->lock);
100
- result = EINVAL;
101
- }
102
- else
103
- {
104
- /*
105
- * Invalidate the semaphore handle when we have the lock.
106
- * Other sema operations should test this after acquiring the lock
107
- * to check that the sema is still valid, i.e. before performing any
108
- * operations. This may only be necessary before the sema op routine
109
- * returns so that the routine can return EINVAL - e.g. if setting
110
- * s->value to SEM_VALUE_MAX below does force a fall-through.
111
- */
112
- *sem = NULL;
113
-
114
- /* Prevent anyone else actually waiting on or posting this sema.
115
- */
116
- s->value = SEM_VALUE_MAX;
117
-
118
- (void) pthread_mutex_unlock (&s->lock);
119
-
120
- do
121
- {
122
- /* Give other threads a chance to run and exit any sema op
123
- * routines. Due to the SEM_VALUE_MAX value, if sem_post or
124
- * sem_wait were blocked by us they should fall through.
125
- */
126
- Sleep(0);
127
- }
128
- while (pthread_mutex_destroy (&s->lock) == EBUSY);
129
- }
130
- }
131
- }
132
- }
133
-
134
- if (result != 0)
135
- {
136
- errno = result;
137
- return -1;
138
- }
139
-
140
- free (s);
141
-
142
- return 0;
143
-
144
- } /* sem_destroy */
@@ -1,110 +0,0 @@
1
- /*
2
- * -------------------------------------------------------------
3
- *
4
- * Module: sem_getvalue.c
5
- *
6
- * Purpose:
7
- * Semaphores aren't actually part of PThreads.
8
- * They are defined by the POSIX Standard:
9
- *
10
- * POSIX 1003.1-2001
11
- *
12
- * -------------------------------------------------------------
13
- *
14
- * --------------------------------------------------------------------------
15
- *
16
- * Pthreads-win32 - POSIX Threads Library for Win32
17
- * Copyright(C) 1998 John E. Bossom
18
- * Copyright(C) 1999,2005 Pthreads-win32 contributors
19
- *
20
- * Contact Email: rpj@callisto.canberra.edu.au
21
- *
22
- * The current list of contributors is contained
23
- * in the file CONTRIBUTORS included with the source
24
- * code distribution. The list can also be seen at the
25
- * following World Wide Web location:
26
- * http://sources.redhat.com/pthreads-win32/contributors.html
27
- *
28
- * This library is free software; you can redistribute it and/or
29
- * modify it under the terms of the GNU Lesser General Public
30
- * License as published by the Free Software Foundation; either
31
- * version 2 of the License, or (at your option) any later version.
32
- *
33
- * This library is distributed in the hope that it will be useful,
34
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
35
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
36
- * Lesser General Public License for more details.
37
- *
38
- * You should have received a copy of the GNU Lesser General Public
39
- * License along with this library in the file COPYING.LIB;
40
- * if not, write to the Free Software Foundation, Inc.,
41
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
42
- */
43
-
44
- #include "pthread.h"
45
- #include "semaphore.h"
46
- #include "implement.h"
47
-
48
-
49
- int
50
- sem_getvalue (sem_t * sem, int *sval)
51
- /*
52
- * ------------------------------------------------------
53
- * DOCPUBLIC
54
- * This function stores the current count value of the
55
- * semaphore.
56
- * RESULTS
57
- *
58
- * Return value
59
- *
60
- * 0 sval has been set.
61
- * -1 failed, error in errno
62
- *
63
- * in global errno
64
- *
65
- * EINVAL 'sem' is not a valid semaphore,
66
- * ENOSYS this function is not supported,
67
- *
68
- *
69
- * PARAMETERS
70
- *
71
- * sem pointer to an instance of sem_t
72
- *
73
- * sval pointer to int.
74
- *
75
- * DESCRIPTION
76
- * This function stores the current count value of the semaphore
77
- * pointed to by sem in the int pointed to by sval.
78
- */
79
- {
80
- if (sem == NULL || *sem == NULL || sval == NULL)
81
- {
82
- errno = EINVAL;
83
- return -1;
84
- }
85
- else
86
- {
87
- long value;
88
- register sem_t s = *sem;
89
- int result = 0;
90
-
91
- if ((result = pthread_mutex_lock(&s->lock)) == 0)
92
- {
93
- /* See sem_destroy.c
94
- */
95
- if (*sem == NULL)
96
- {
97
- (void) pthread_mutex_unlock (&s->lock);
98
- errno = EINVAL;
99
- return -1;
100
- }
101
-
102
- value = s->value;
103
- (void) pthread_mutex_unlock(&s->lock);
104
- *sval = value;
105
- }
106
-
107
- return result;
108
- }
109
-
110
- } /* sem_getvalue */