noderb 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/noderb_extension/libuv/AUTHORS +11 -1
- data/ext/noderb_extension/libuv/LICENSE +0 -8
- data/ext/noderb_extension/libuv/Makefile +5 -5
- data/ext/noderb_extension/libuv/README +11 -6
- data/ext/noderb_extension/libuv/common.gypi +158 -7
- data/ext/noderb_extension/libuv/config-unix.mk +34 -26
- data/ext/noderb_extension/libuv/gyp_uv +22 -4
- data/ext/noderb_extension/libuv/include/{eio.h → uv-private/eio.h} +2 -2
- data/ext/noderb_extension/libuv/include/{uv-unix.h → uv-private/uv-unix.h} +40 -0
- data/ext/noderb_extension/libuv/include/{uv-win.h → uv-private/uv-win.h} +96 -14
- data/ext/noderb_extension/libuv/include/uv.h +508 -83
- data/ext/noderb_extension/libuv/src/unix/cares.c +185 -0
- data/ext/noderb_extension/libuv/src/unix/core.c +828 -0
- data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_darwin.h +4 -0
- data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_linux.h +5 -15
- data/ext/noderb_extension/libuv/src/{eio → unix/eio}/eio.c +23 -2
- data/ext/noderb_extension/libuv/src/unix/error.c +102 -0
- data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_linux.h +26 -15
- data/ext/noderb_extension/libuv/src/unix/fs.c +562 -0
- data/ext/noderb_extension/libuv/src/unix/internal.h +75 -0
- data/ext/noderb_extension/libuv/src/unix/pipe.c +282 -0
- data/ext/noderb_extension/libuv/src/unix/process.c +287 -0
- data/ext/noderb_extension/libuv/src/unix/stream.c +727 -0
- data/ext/noderb_extension/libuv/src/unix/tcp.c +226 -0
- data/ext/noderb_extension/libuv/src/unix/udp.c +524 -0
- data/ext/noderb_extension/libuv/src/{uv-eio.c → unix/uv-eio.c} +48 -27
- data/ext/noderb_extension/libuv/src/{uv-eio.h → unix/uv-eio.h} +1 -1
- data/ext/noderb_extension/libuv/src/uv-common.c +24 -14
- data/ext/noderb_extension/libuv/src/uv-common.h +12 -7
- data/ext/noderb_extension/libuv/src/win/async.c +14 -16
- data/ext/noderb_extension/libuv/src/win/cares.c +64 -79
- data/ext/noderb_extension/libuv/src/win/core.c +105 -53
- data/ext/noderb_extension/libuv/src/win/error.c +23 -13
- data/ext/noderb_extension/libuv/src/win/fs.c +807 -0
- data/ext/noderb_extension/libuv/src/win/getaddrinfo.c +61 -41
- data/ext/noderb_extension/libuv/src/win/handle.c +56 -30
- data/ext/noderb_extension/libuv/src/win/internal.h +134 -95
- data/ext/noderb_extension/libuv/src/win/loop-watcher.c +21 -18
- data/ext/noderb_extension/libuv/src/win/pipe.c +313 -158
- data/ext/noderb_extension/libuv/src/win/process.c +117 -131
- data/ext/noderb_extension/libuv/src/win/req.c +55 -31
- data/ext/noderb_extension/libuv/src/win/stdio.c +5 -5
- data/ext/noderb_extension/libuv/src/win/stream.c +19 -14
- data/ext/noderb_extension/libuv/src/win/tcp.c +278 -336
- data/ext/noderb_extension/libuv/src/win/threadpool.c +73 -0
- data/ext/noderb_extension/libuv/src/win/timer.c +44 -37
- data/ext/noderb_extension/libuv/src/win/udp.c +592 -0
- data/ext/noderb_extension/libuv/src/win/util.c +20 -6
- data/ext/noderb_extension/libuv/src/win/winapi.c +23 -6
- data/ext/noderb_extension/libuv/src/win/winapi.h +4206 -0
- data/ext/noderb_extension/libuv/src/win/winsock.c +270 -0
- data/ext/noderb_extension/libuv/src/win/winsock.h +134 -0
- data/ext/noderb_extension/libuv/test/benchmark-ares.c +10 -6
- data/ext/noderb_extension/libuv/test/benchmark-getaddrinfo.c +10 -7
- data/ext/noderb_extension/libuv/test/benchmark-list.h +21 -0
- data/ext/noderb_extension/libuv/test/benchmark-ping-pongs.c +11 -7
- data/ext/noderb_extension/libuv/test/benchmark-pound.c +147 -58
- data/ext/noderb_extension/libuv/test/benchmark-pump.c +29 -23
- data/ext/noderb_extension/libuv/test/benchmark-spawn.c +13 -10
- data/ext/noderb_extension/libuv/test/benchmark-udp-packet-storm.c +250 -0
- data/ext/noderb_extension/libuv/test/dns-server.c +11 -6
- data/ext/noderb_extension/libuv/test/echo-server.c +30 -22
- data/ext/noderb_extension/libuv/test/test-async.c +3 -3
- data/ext/noderb_extension/libuv/test/test-callback-stack.c +6 -6
- data/ext/noderb_extension/libuv/test/test-connection-fail.c +6 -5
- data/ext/noderb_extension/libuv/test/test-delayed-accept.c +13 -13
- data/ext/noderb_extension/libuv/test/test-fs.c +715 -0
- data/ext/noderb_extension/libuv/test/test-getaddrinfo.c +11 -8
- data/ext/noderb_extension/libuv/test/test-gethostbyname.c +8 -9
- data/ext/noderb_extension/libuv/test/test-getsockname.c +142 -16
- data/ext/noderb_extension/libuv/test/test-idle.c +4 -3
- data/ext/noderb_extension/libuv/test/test-list.h +29 -2
- data/ext/noderb_extension/libuv/test/test-loop-handles.c +9 -8
- data/ext/noderb_extension/libuv/test/test-ping-pong.c +9 -9
- data/ext/noderb_extension/libuv/test/test-pipe-bind-error.c +18 -14
- data/ext/noderb_extension/libuv/test/test-ref.c +17 -16
- data/ext/noderb_extension/libuv/test/test-shutdown-eof.c +5 -5
- data/ext/noderb_extension/libuv/test/test-spawn.c +17 -17
- data/ext/noderb_extension/libuv/test/test-tcp-bind-error.c +24 -18
- data/ext/noderb_extension/libuv/test/test-tcp-bind6-error.c +19 -14
- data/ext/noderb_extension/libuv/test/test-tcp-writealot.c +6 -5
- data/ext/noderb_extension/libuv/test/test-threadpool.c +59 -0
- data/ext/noderb_extension/libuv/test/test-timer-again.c +15 -12
- data/ext/noderb_extension/libuv/test/test-timer.c +8 -8
- data/ext/noderb_extension/libuv/test/test-udp-dgram-too-big.c +88 -0
- data/ext/noderb_extension/libuv/test/test-udp-ipv6.c +158 -0
- data/ext/noderb_extension/libuv/test/test-udp-send-and-recv.c +210 -0
- data/ext/noderb_extension/libuv/{all.gyp → uv.gyp} +75 -77
- data/ext/noderb_extension/libuv/vcbuild.bat +93 -0
- data/ext/noderb_extension/noderb.c +13 -0
- data/ext/noderb_extension/noderb_common.h +2 -1
- data/ext/noderb_extension/noderb_defer.c +54 -0
- data/ext/noderb_extension/noderb_defer.h +15 -0
- data/ext/noderb_extension/noderb_dns.c +1 -1
- data/ext/noderb_extension/noderb_fs.c +277 -0
- data/ext/noderb_extension/noderb_fs.h +27 -0
- data/ext/noderb_extension/noderb_process.c +5 -5
- data/ext/noderb_extension/noderb_tcp.c +10 -6
- data/ext/noderb_extension/noderb_timers.c +1 -1
- data/ext/noderb_extension/noderb_tools.c +42 -8
- data/ext/noderb_extension/noderb_tools.h +3 -1
- data/lib/noderb/defer.rb +25 -0
- data/lib/noderb/file.rb +119 -0
- data/lib/noderb/fs.rb +72 -0
- data/lib/noderb/version.rb +1 -1
- data/lib/noderb.rb +8 -0
- metadata +102 -266
- data/ext/noderb_extension/libuv/BSDmakefile +0 -2
- data/ext/noderb_extension/libuv/create-msvs-files.bat +0 -21
- data/ext/noderb_extension/libuv/deps/pthread-win32/ANNOUNCE +0 -482
- data/ext/noderb_extension/libuv/deps/pthread-win32/BUGS +0 -141
- data/ext/noderb_extension/libuv/deps/pthread-win32/Bmakefile +0 -268
- data/ext/noderb_extension/libuv/deps/pthread-win32/CONTRIBUTORS +0 -140
- data/ext/noderb_extension/libuv/deps/pthread-win32/COPYING +0 -150
- data/ext/noderb_extension/libuv/deps/pthread-win32/COPYING.LIB +0 -504
- data/ext/noderb_extension/libuv/deps/pthread-win32/ChangeLog +0 -5194
- data/ext/noderb_extension/libuv/deps/pthread-win32/FAQ +0 -451
- data/ext/noderb_extension/libuv/deps/pthread-win32/GNUmakefile +0 -593
- data/ext/noderb_extension/libuv/deps/pthread-win32/MAINTAINERS +0 -4
- data/ext/noderb_extension/libuv/deps/pthread-win32/Makefile +0 -516
- data/ext/noderb_extension/libuv/deps/pthread-win32/NEWS +0 -1245
- data/ext/noderb_extension/libuv/deps/pthread-win32/Nmakefile +0 -24
- data/ext/noderb_extension/libuv/deps/pthread-win32/Nmakefile.tests +0 -260
- data/ext/noderb_extension/libuv/deps/pthread-win32/PROGRESS +0 -4
- data/ext/noderb_extension/libuv/deps/pthread-win32/README +0 -601
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.Borland +0 -57
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.CV +0 -3036
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.NONPORTABLE +0 -783
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.Watcom +0 -62
- data/ext/noderb_extension/libuv/deps/pthread-win32/README.WinCE +0 -6
- data/ext/noderb_extension/libuv/deps/pthread-win32/TODO +0 -7
- data/ext/noderb_extension/libuv/deps/pthread-win32/WinCE-PORT +0 -222
- data/ext/noderb_extension/libuv/deps/pthread-win32/attr.c +0 -53
- data/ext/noderb_extension/libuv/deps/pthread-win32/autostatic.c +0 -69
- data/ext/noderb_extension/libuv/deps/pthread-win32/barrier.c +0 -47
- data/ext/noderb_extension/libuv/deps/pthread-win32/build/all.gyp +0 -207
- data/ext/noderb_extension/libuv/deps/pthread-win32/builddmc.bat +0 -9
- data/ext/noderb_extension/libuv/deps/pthread-win32/cancel.c +0 -44
- data/ext/noderb_extension/libuv/deps/pthread-win32/cleanup.c +0 -148
- data/ext/noderb_extension/libuv/deps/pthread-win32/condvar.c +0 -50
- data/ext/noderb_extension/libuv/deps/pthread-win32/config.h +0 -153
- data/ext/noderb_extension/libuv/deps/pthread-win32/context.h +0 -74
- data/ext/noderb_extension/libuv/deps/pthread-win32/create.c +0 -308
- data/ext/noderb_extension/libuv/deps/pthread-win32/dll.c +0 -92
- data/ext/noderb_extension/libuv/deps/pthread-win32/errno.c +0 -94
- data/ext/noderb_extension/libuv/deps/pthread-win32/exit.c +0 -44
- data/ext/noderb_extension/libuv/deps/pthread-win32/fork.c +0 -39
- data/ext/noderb_extension/libuv/deps/pthread-win32/global.c +0 -107
- data/ext/noderb_extension/libuv/deps/pthread-win32/implement.h +0 -944
- data/ext/noderb_extension/libuv/deps/pthread-win32/misc.c +0 -50
- data/ext/noderb_extension/libuv/deps/pthread-win32/mutex.c +0 -62
- data/ext/noderb_extension/libuv/deps/pthread-win32/need_errno.h +0 -145
- data/ext/noderb_extension/libuv/deps/pthread-win32/nonportable.c +0 -47
- data/ext/noderb_extension/libuv/deps/pthread-win32/private.c +0 -54
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.c +0 -66
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.dsp +0 -142
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.dsw +0 -29
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread.h +0 -1368
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_destroy.c +0 -79
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getdetachstate.c +0 -86
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getinheritsched.c +0 -51
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getschedparam.c +0 -52
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getschedpolicy.c +0 -61
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getscope.c +0 -54
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getstackaddr.c +0 -97
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_getstacksize.c +0 -100
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_init.c +0 -117
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setdetachstate.c +0 -91
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setinheritsched.c +0 -57
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setschedparam.c +0 -63
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setschedpolicy.c +0 -55
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setscope.c +0 -62
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setstackaddr.c +0 -97
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_attr_setstacksize.c +0 -110
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_destroy.c +0 -103
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_init.c +0 -69
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrier_wait.c +0 -104
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_destroy.c +0 -83
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_getpshared.c +0 -95
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_init.c +0 -85
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_barrierattr_setpshared.c +0 -119
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cancel.c +0 -189
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_destroy.c +0 -253
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_init.c +0 -167
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_signal.c +0 -231
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_cond_wait.c +0 -567
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_destroy.c +0 -86
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_getpshared.c +0 -97
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_init.c +0 -87
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_condattr_setpshared.c +0 -117
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_delay_np.c +0 -172
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_detach.c +0 -136
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_equal.c +0 -76
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_exit.c +0 -106
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getconcurrency.c +0 -45
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getschedparam.c +0 -75
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getspecific.c +0 -87
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getunique_np.c +0 -47
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_getw32threadhandle_np.c +0 -65
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_join.c +0 -157
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_key_create.c +0 -108
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_key_delete.c +0 -125
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_kill.c +0 -105
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_consistent.c +0 -187
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_destroy.c +0 -148
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_init.c +0 -130
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_lock.c +0 -269
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_timedlock.c +0 -324
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_trylock.c +0 -154
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutex_unlock.c +0 -175
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_destroy.c +0 -83
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getkind_np.c +0 -44
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getpshared.c +0 -95
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_getrobust.c +0 -113
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_gettype.c +0 -56
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_init.c +0 -86
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setkind_np.c +0 -44
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setpshared.c +0 -119
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_setrobust.c +0 -119
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_mutexattr_settype.c +0 -143
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_num_processors_np.c +0 -56
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_once.c +0 -79
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_destroy.c +0 -143
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_init.c +0 -109
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_rdlock.c +0 -102
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_timedrdlock.c +0 -109
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_timedwrlock.c +0 -139
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_tryrdlock.c +0 -102
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_trywrlock.c +0 -122
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_unlock.c +0 -93
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlock_wrlock.c +0 -133
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_destroy.c +0 -84
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_getpshared.c +0 -97
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_init.c +0 -83
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_rwlockattr_setpshared.c +0 -120
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_self.c +0 -141
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setcancelstate.c +0 -125
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setcanceltype.c +0 -126
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setconcurrency.c +0 -53
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setschedparam.c +0 -123
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_setspecific.c +0 -167
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_destroy.c +0 -111
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_init.c +0 -123
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_lock.c +0 -80
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_trylock.c +0 -77
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_spin_unlock.c +0 -71
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_testcancel.c +0 -103
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_timechange_handler_np.c +0 -108
- data/ext/noderb_extension/libuv/deps/pthread-win32/pthread_win32_attach_detach_np.c +0 -258
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_MCS_lock.c +0 -278
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_callUserDestroyRoutines.c +0 -232
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_calloc.c +0 -56
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_cond_check_need_init.c +0 -78
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_getprocessors.c +0 -91
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_is_attr.c +0 -47
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_mutex_check_need_init.c +0 -92
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_new.c +0 -94
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_processInitialize.c +0 -92
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_processTerminate.c +0 -105
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_relmillisecs.c +0 -132
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_reuse.c +0 -151
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_rwlock_cancelwrwait.c +0 -50
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_rwlock_check_need_init.c +0 -77
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_semwait.c +0 -135
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_spinlock_check_need_init.c +0 -78
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_threadDestroy.c +0 -79
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_threadStart.c +0 -357
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_throw.c +0 -189
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_timespec.c +0 -83
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_tkAssocCreate.c +0 -118
- data/ext/noderb_extension/libuv/deps/pthread-win32/ptw32_tkAssocDestroy.c +0 -114
- data/ext/noderb_extension/libuv/deps/pthread-win32/rwlock.c +0 -51
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched.c +0 -53
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched.h +0 -183
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_get_priority_max.c +0 -134
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_get_priority_min.c +0 -135
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_getscheduler.c +0 -71
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_setscheduler.c +0 -83
- data/ext/noderb_extension/libuv/deps/pthread-win32/sched_yield.c +0 -71
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_close.c +0 -58
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_destroy.c +0 -144
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_getvalue.c +0 -110
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_init.c +0 -169
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_open.c +0 -58
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_post.c +0 -128
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_post_multiple.c +0 -142
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_timedwait.c +0 -238
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_trywait.c +0 -117
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_unlink.c +0 -58
- data/ext/noderb_extension/libuv/deps/pthread-win32/sem_wait.c +0 -187
- data/ext/noderb_extension/libuv/deps/pthread-win32/semaphore.c +0 -69
- data/ext/noderb_extension/libuv/deps/pthread-win32/semaphore.h +0 -169
- data/ext/noderb_extension/libuv/deps/pthread-win32/signal.c +0 -179
- data/ext/noderb_extension/libuv/deps/pthread-win32/spin.c +0 -46
- data/ext/noderb_extension/libuv/deps/pthread-win32/sync.c +0 -43
- data/ext/noderb_extension/libuv/deps/pthread-win32/tsd.c +0 -44
- data/ext/noderb_extension/libuv/deps/pthread-win32/version.rc +0 -388
- data/ext/noderb_extension/libuv/deps/pthread-win32/w32_CancelableWait.c +0 -161
- data/ext/noderb_extension/libuv/doc/iocp-links.html +0 -574
- data/ext/noderb_extension/libuv/src/uv-unix.c +0 -2421
- data/ext/noderb_extension/libuv/src/win/ntdll.h +0 -130
- /data/ext/noderb_extension/libuv/include/{ev.h → uv-private/ev.h} +0 -0
- /data/ext/noderb_extension/libuv/include/{ngx-queue.h → uv-private/ngx-queue.h} +0 -0
- /data/ext/noderb_extension/libuv/include/{tree.h → uv-private/tree.h} +0 -0
- /data/ext/noderb_extension/libuv/src/{uv-cygwin.c → unix/cygwin.c} +0 -0
- /data/ext/noderb_extension/libuv/src/{uv-darwin.c → unix/darwin.c} +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/Changes +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/LICENSE +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/Makefile.am +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/aclocal.m4 +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/autogen.sh +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config.h.in +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_cygwin.h +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_freebsd.h +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/config_sunos.h +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/configure.ac +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/demo.c +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/ecb.h +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/eio.3 +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/eio.pod +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/libeio.m4 +0 -0
- /data/ext/noderb_extension/libuv/src/{eio → unix/eio}/xthread.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/Changes +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/LICENSE +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/Makefile.am +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/Makefile.in +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/README +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/aclocal.m4 +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/autogen.sh +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config.guess +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config.h.in +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config.sub +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_cygwin.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_darwin.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_freebsd.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/config_sunos.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/configure +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/configure.ac +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/depcomp +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev++.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev.3 +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev.pod +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_epoll.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_kqueue.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_poll.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_port.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_select.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_vars.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_win32.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ev_wrap.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/event.c +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/event.h +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/install-sh +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/libev.m4 +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/ltmain.sh +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/missing +0 -0
- /data/ext/noderb_extension/libuv/src/{ev → unix/ev}/mkinstalldirs +0 -0
- /data/ext/noderb_extension/libuv/src/{uv-freebsd.c → unix/freebsd.c} +0 -0
- /data/ext/noderb_extension/libuv/src/{uv-linux.c → unix/linux.c} +0 -0
- /data/ext/noderb_extension/libuv/src/{uv-sunos.c → unix/sunos.c} +0 -0
@@ -61,39 +61,38 @@
|
|
61
61
|
*/
|
62
62
|
static uv_err_code uv_translate_eai_error(int eai_errno) {
|
63
63
|
switch (eai_errno) {
|
64
|
-
case ERROR_SUCCESS:
|
65
|
-
case EAI_BADFLAGS:
|
66
|
-
case EAI_FAIL:
|
67
|
-
case EAI_FAMILY:
|
68
|
-
case EAI_MEMORY:
|
69
|
-
case EAI_NONAME:
|
70
|
-
case EAI_AGAIN:
|
71
|
-
case EAI_SERVICE:
|
72
|
-
case EAI_SOCKTYPE:
|
73
|
-
default:
|
64
|
+
case ERROR_SUCCESS: return UV_OK;
|
65
|
+
case EAI_BADFLAGS: return UV_EBADF;
|
66
|
+
case EAI_FAIL: return UV_EFAULT;
|
67
|
+
case EAI_FAMILY: return UV_EAIFAMNOSUPPORT;
|
68
|
+
case EAI_MEMORY: return UV_ENOMEM;
|
69
|
+
case EAI_NONAME: return UV_EAINONAME;
|
70
|
+
case EAI_AGAIN: return UV_EAGAIN;
|
71
|
+
case EAI_SERVICE: return UV_EAISERVICE;
|
72
|
+
case EAI_SOCKTYPE: return UV_EAISOCKTYPE;
|
73
|
+
default: return uv_translate_sys_error(eai_errno);
|
74
74
|
}
|
75
75
|
}
|
76
76
|
|
77
77
|
|
78
78
|
/* getaddrinfo worker thread implementation */
|
79
79
|
static DWORD WINAPI getaddrinfo_thread_proc(void* parameter) {
|
80
|
-
uv_getaddrinfo_t* handle = (uv_getaddrinfo_t*)parameter;
|
80
|
+
uv_getaddrinfo_t* handle = (uv_getaddrinfo_t*) parameter;
|
81
|
+
uv_loop_t* loop = handle->loop;
|
81
82
|
int ret;
|
82
83
|
|
83
84
|
assert(handle != NULL);
|
84
85
|
|
85
86
|
if (handle != NULL) {
|
86
87
|
/* call OS function on this thread */
|
87
|
-
ret = GetAddrInfoW(handle->node,
|
88
|
+
ret = GetAddrInfoW(handle->node,
|
89
|
+
handle->service,
|
90
|
+
handle->hints,
|
91
|
+
&handle->res);
|
88
92
|
handle->retcode = ret;
|
89
93
|
|
90
94
|
/* post getaddrinfo completed */
|
91
|
-
|
92
|
-
0,
|
93
|
-
0,
|
94
|
-
&handle->getadddrinfo_req.overlapped)) {
|
95
|
-
uv_fatal_error(GetLastError(), "PostQueuedCompletionStatus");
|
96
|
-
}
|
95
|
+
POST_COMPLETION_FOR_REQ(loop, &handle->getadddrinfo_req);
|
97
96
|
}
|
98
97
|
|
99
98
|
return 0;
|
@@ -109,7 +108,8 @@ static DWORD WINAPI getaddrinfo_thread_proc(void* parameter) {
|
|
109
108
|
* and copy all structs and referenced strings into the one block.
|
110
109
|
* Each size calculation is adjusted to avoid unaligned pointers.
|
111
110
|
*/
|
112
|
-
void uv_process_getaddrinfo_req(
|
111
|
+
void uv_process_getaddrinfo_req(uv_loop_t* loop, uv_getaddrinfo_t* handle,
|
112
|
+
uv_req_t* req) {
|
113
113
|
int addrinfo_len = 0;
|
114
114
|
int name_len = 0;
|
115
115
|
size_t addrinfo_struct_len = ALIGNED_SIZE(sizeof(struct addrinfo));
|
@@ -131,7 +131,8 @@ void uv_process_getaddrinfo_req(uv_getaddrinfo_t* handle, uv_req_t* req) {
|
|
131
131
|
/* first calculate required length */
|
132
132
|
addrinfow_ptr = handle->res;
|
133
133
|
while (addrinfow_ptr != NULL) {
|
134
|
-
addrinfo_len += addrinfo_struct_len +
|
134
|
+
addrinfo_len += addrinfo_struct_len +
|
135
|
+
ALIGNED_SIZE(addrinfow_ptr->ai_addrlen);
|
135
136
|
if (addrinfow_ptr->ai_canonname != NULL) {
|
136
137
|
name_len = uv_utf16_to_utf8(addrinfow_ptr->ai_canonname, -1, NULL, 0);
|
137
138
|
if (name_len == 0) {
|
@@ -168,7 +169,8 @@ void uv_process_getaddrinfo_req(uv_getaddrinfo_t* handle, uv_req_t* req) {
|
|
168
169
|
|
169
170
|
/* copy sockaddr */
|
170
171
|
if (addrinfo_ptr->ai_addrlen > 0) {
|
171
|
-
assert(cur_ptr + addrinfo_ptr->ai_addrlen <=
|
172
|
+
assert(cur_ptr + addrinfo_ptr->ai_addrlen <=
|
173
|
+
alloc_ptr + addrinfo_len);
|
172
174
|
memcpy(cur_ptr, addrinfow_ptr->ai_addr, addrinfo_ptr->ai_addrlen);
|
173
175
|
addrinfo_ptr->ai_addr = (struct sockaddr*)cur_ptr;
|
174
176
|
cur_ptr += ALIGNED_SIZE(addrinfo_ptr->ai_addrlen);
|
@@ -176,10 +178,16 @@ void uv_process_getaddrinfo_req(uv_getaddrinfo_t* handle, uv_req_t* req) {
|
|
176
178
|
|
177
179
|
/* convert canonical name to UTF-8 */
|
178
180
|
if (addrinfow_ptr->ai_canonname != NULL) {
|
179
|
-
name_len = uv_utf16_to_utf8(addrinfow_ptr->ai_canonname,
|
181
|
+
name_len = uv_utf16_to_utf8(addrinfow_ptr->ai_canonname,
|
182
|
+
-1,
|
183
|
+
NULL,
|
184
|
+
0);
|
180
185
|
assert(name_len > 0);
|
181
186
|
assert(cur_ptr + name_len <= alloc_ptr + addrinfo_len);
|
182
|
-
name_len = uv_utf16_to_utf8(addrinfow_ptr->ai_canonname,
|
187
|
+
name_len = uv_utf16_to_utf8(addrinfow_ptr->ai_canonname,
|
188
|
+
-1,
|
189
|
+
cur_ptr,
|
190
|
+
name_len);
|
183
191
|
assert(name_len > 0);
|
184
192
|
addrinfo_ptr->ai_canonname = cur_ptr;
|
185
193
|
cur_ptr += ALIGNED_SIZE(name_len);
|
@@ -213,7 +221,7 @@ complete:
|
|
213
221
|
free(alloc_ptr);
|
214
222
|
}
|
215
223
|
|
216
|
-
uv_unref();
|
224
|
+
uv_unref(loop);
|
217
225
|
}
|
218
226
|
|
219
227
|
|
@@ -221,7 +229,8 @@ complete:
|
|
221
229
|
* Entry point for getaddrinfo
|
222
230
|
* we convert the UTF-8 strings to UNICODE
|
223
231
|
* and save the UNICODE string pointers in the handle
|
224
|
-
* We also copy hints so that caller does not need to keep memory until the
|
232
|
+
* We also copy hints so that caller does not need to keep memory until the
|
233
|
+
* callback.
|
225
234
|
* return UV_OK if a callback will be made
|
226
235
|
* return error code if validation fails
|
227
236
|
*
|
@@ -229,7 +238,8 @@ complete:
|
|
229
238
|
* and copy all structs and referenced strings into the one block.
|
230
239
|
* Each size calculation is adjusted to avoid unaligned pointers.
|
231
240
|
*/
|
232
|
-
int uv_getaddrinfo(
|
241
|
+
int uv_getaddrinfo(uv_loop_t* loop,
|
242
|
+
uv_getaddrinfo_t* handle,
|
233
243
|
uv_getaddrinfo_cb getaddrinfo_cb,
|
234
244
|
const char* node,
|
235
245
|
const char* service,
|
@@ -241,27 +251,29 @@ int uv_getaddrinfo(uv_getaddrinfo_t* handle,
|
|
241
251
|
|
242
252
|
if (handle == NULL || getaddrinfo_cb == NULL ||
|
243
253
|
(node == NULL && service == NULL)) {
|
244
|
-
uv_set_sys_error(WSAEINVAL);
|
254
|
+
uv_set_sys_error(loop, WSAEINVAL);
|
245
255
|
goto error;
|
246
256
|
}
|
247
257
|
|
248
258
|
handle->getaddrinfo_cb = getaddrinfo_cb;
|
249
259
|
handle->res = NULL;
|
250
260
|
handle->type = UV_GETADDRINFO;
|
261
|
+
handle->loop = loop;
|
251
262
|
|
252
263
|
/* calculate required memory size for all input values */
|
253
264
|
if (node != NULL) {
|
254
265
|
nodesize = ALIGNED_SIZE(uv_utf8_to_utf16(node, NULL, 0) * sizeof(wchar_t));
|
255
266
|
if (nodesize == 0) {
|
256
|
-
uv_set_sys_error(GetLastError());
|
267
|
+
uv_set_sys_error(loop, GetLastError());
|
257
268
|
goto error;
|
258
269
|
}
|
259
270
|
}
|
260
271
|
|
261
272
|
if (service != NULL) {
|
262
|
-
servicesize = ALIGNED_SIZE(uv_utf8_to_utf16(service, NULL, 0) *
|
273
|
+
servicesize = ALIGNED_SIZE(uv_utf8_to_utf16(service, NULL, 0) *
|
274
|
+
sizeof(wchar_t));
|
263
275
|
if (servicesize == 0) {
|
264
|
-
uv_set_sys_error(GetLastError());
|
276
|
+
uv_set_sys_error(loop, GetLastError());
|
265
277
|
goto error;
|
266
278
|
}
|
267
279
|
}
|
@@ -272,18 +284,21 @@ int uv_getaddrinfo(uv_getaddrinfo_t* handle,
|
|
272
284
|
/* allocate memory for inputs, and partition it as needed */
|
273
285
|
alloc_ptr = (char*)malloc(nodesize + servicesize + hintssize);
|
274
286
|
if (!alloc_ptr) {
|
275
|
-
uv_set_sys_error(WSAENOBUFS);
|
287
|
+
uv_set_sys_error(loop, WSAENOBUFS);
|
276
288
|
goto error;
|
277
289
|
}
|
278
290
|
|
279
291
|
/* save alloc_ptr now so we can free if error */
|
280
292
|
handle->alloc = (void*)alloc_ptr;
|
281
293
|
|
282
|
-
/* convert node string to UTF16 into allocated memory and save pointer in
|
294
|
+
/* convert node string to UTF16 into allocated memory and save pointer in */
|
295
|
+
/* handle */
|
283
296
|
if (node != NULL) {
|
284
297
|
handle->node = (wchar_t*)alloc_ptr;
|
285
|
-
if (uv_utf8_to_utf16(node,
|
286
|
-
|
298
|
+
if (uv_utf8_to_utf16(node,
|
299
|
+
(wchar_t*) alloc_ptr,
|
300
|
+
nodesize / sizeof(wchar_t)) == 0) {
|
301
|
+
uv_set_sys_error(loop, GetLastError());
|
287
302
|
goto error;
|
288
303
|
}
|
289
304
|
alloc_ptr += nodesize;
|
@@ -291,11 +306,14 @@ int uv_getaddrinfo(uv_getaddrinfo_t* handle,
|
|
291
306
|
handle->node = NULL;
|
292
307
|
}
|
293
308
|
|
294
|
-
/* convert service string to UTF16 into allocated memory and save pointer
|
309
|
+
/* convert service string to UTF16 into allocated memory and save pointer */
|
310
|
+
/* in handle */
|
295
311
|
if (service != NULL) {
|
296
312
|
handle->service = (wchar_t*)alloc_ptr;
|
297
|
-
if (uv_utf8_to_utf16(service,
|
298
|
-
|
313
|
+
if (uv_utf8_to_utf16(service,
|
314
|
+
(wchar_t*) alloc_ptr,
|
315
|
+
servicesize / sizeof(wchar_t)) == 0) {
|
316
|
+
uv_set_sys_error(loop, GetLastError());
|
299
317
|
goto error;
|
300
318
|
}
|
301
319
|
alloc_ptr += servicesize;
|
@@ -319,17 +337,19 @@ int uv_getaddrinfo(uv_getaddrinfo_t* handle,
|
|
319
337
|
}
|
320
338
|
|
321
339
|
/* init request for Post handling */
|
322
|
-
uv_req_init(&handle->getadddrinfo_req);
|
340
|
+
uv_req_init(loop, &handle->getadddrinfo_req);
|
323
341
|
handle->getadddrinfo_req.data = handle;
|
324
342
|
handle->getadddrinfo_req.type = UV_GETADDRINFO_REQ;
|
325
343
|
|
326
344
|
/* Ask thread to run. Treat this as a long operation */
|
327
|
-
if (QueueUserWorkItem(&getaddrinfo_thread_proc,
|
328
|
-
|
345
|
+
if (QueueUserWorkItem(&getaddrinfo_thread_proc,
|
346
|
+
handle,
|
347
|
+
WT_EXECUTELONGFUNCTION) == 0) {
|
348
|
+
uv_set_sys_error(loop, GetLastError());
|
329
349
|
goto error;
|
330
350
|
}
|
331
351
|
|
332
|
-
uv_ref();
|
352
|
+
uv_ref(loop);
|
333
353
|
|
334
354
|
return 0;
|
335
355
|
|
@@ -39,18 +39,37 @@ int uv_is_active(uv_handle_t* handle) {
|
|
39
39
|
}
|
40
40
|
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
int uv_getsockname(uv_handle_t* handle, struct sockaddr* name, int* namelen) {
|
43
|
+
uv_loop_t* loop = handle->loop;
|
44
|
+
|
45
|
+
switch (handle->type) {
|
46
|
+
case UV_TCP:
|
47
|
+
return uv_tcp_getsockname(loop, (uv_tcp_t*) handle, name, namelen);
|
48
|
+
|
49
|
+
case UV_UDP:
|
50
|
+
return uv_udp_getsockname(loop, (uv_udp_t*) handle, name, namelen);
|
51
|
+
|
52
|
+
default:
|
53
|
+
uv_set_sys_error(loop, WSAENOTSOCK);
|
54
|
+
return -1;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
void uv_close(uv_handle_t* handle, uv_close_cb cb) {
|
44
60
|
uv_tcp_t* tcp;
|
45
61
|
uv_pipe_t* pipe;
|
62
|
+
uv_udp_t* udp;
|
46
63
|
uv_process_t* process;
|
47
64
|
|
65
|
+
uv_loop_t* loop = handle->loop;
|
66
|
+
|
48
67
|
if (handle->flags & UV_HANDLE_CLOSING) {
|
49
68
|
return;
|
50
69
|
}
|
51
70
|
|
52
|
-
handle->error = e;
|
53
71
|
handle->flags |= UV_HANDLE_CLOSING;
|
72
|
+
handle->close_cb = cb;
|
54
73
|
|
55
74
|
/* Handle-specific close actions */
|
56
75
|
switch (handle->type) {
|
@@ -65,7 +84,7 @@ static void uv_close_error(uv_handle_t* handle, uv_err_t e) {
|
|
65
84
|
tcp->flags &= ~(UV_HANDLE_READING | UV_HANDLE_LISTENING);
|
66
85
|
closesocket(tcp->socket);
|
67
86
|
if (tcp->reqs_pending == 0) {
|
68
|
-
uv_want_endgame(handle);
|
87
|
+
uv_want_endgame(loop, handle);
|
69
88
|
}
|
70
89
|
return;
|
71
90
|
|
@@ -74,39 +93,48 @@ static void uv_close_error(uv_handle_t* handle, uv_err_t e) {
|
|
74
93
|
pipe->flags &= ~(UV_HANDLE_READING | UV_HANDLE_LISTENING);
|
75
94
|
close_pipe(pipe, NULL, NULL);
|
76
95
|
if (pipe->reqs_pending == 0) {
|
77
|
-
uv_want_endgame(handle);
|
96
|
+
uv_want_endgame(loop, handle);
|
97
|
+
}
|
98
|
+
return;
|
99
|
+
|
100
|
+
case UV_UDP:
|
101
|
+
udp = (uv_udp_t*) handle;
|
102
|
+
uv_udp_recv_stop(udp);
|
103
|
+
closesocket(udp->socket);
|
104
|
+
if (udp->reqs_pending == 0) {
|
105
|
+
uv_want_endgame(loop, handle);
|
78
106
|
}
|
79
107
|
return;
|
80
108
|
|
81
109
|
case UV_TIMER:
|
82
110
|
uv_timer_stop((uv_timer_t*)handle);
|
83
|
-
uv_want_endgame(handle);
|
111
|
+
uv_want_endgame(loop, handle);
|
84
112
|
return;
|
85
113
|
|
86
114
|
case UV_PREPARE:
|
87
115
|
uv_prepare_stop((uv_prepare_t*)handle);
|
88
|
-
uv_want_endgame(handle);
|
116
|
+
uv_want_endgame(loop, handle);
|
89
117
|
return;
|
90
118
|
|
91
119
|
case UV_CHECK:
|
92
120
|
uv_check_stop((uv_check_t*)handle);
|
93
|
-
uv_want_endgame(handle);
|
121
|
+
uv_want_endgame(loop, handle);
|
94
122
|
return;
|
95
123
|
|
96
124
|
case UV_IDLE:
|
97
125
|
uv_idle_stop((uv_idle_t*)handle);
|
98
|
-
uv_want_endgame(handle);
|
126
|
+
uv_want_endgame(loop, handle);
|
99
127
|
return;
|
100
128
|
|
101
129
|
case UV_ASYNC:
|
102
130
|
if (!((uv_async_t*)handle)->async_sent) {
|
103
|
-
uv_want_endgame(handle);
|
131
|
+
uv_want_endgame(loop, handle);
|
104
132
|
}
|
105
133
|
return;
|
106
134
|
|
107
135
|
case UV_PROCESS:
|
108
136
|
process = (uv_process_t*)handle;
|
109
|
-
uv_process_close(process);
|
137
|
+
uv_process_close(loop, process);
|
110
138
|
return;
|
111
139
|
|
112
140
|
default:
|
@@ -116,56 +144,54 @@ static void uv_close_error(uv_handle_t* handle, uv_err_t e) {
|
|
116
144
|
}
|
117
145
|
|
118
146
|
|
119
|
-
void
|
120
|
-
handle->close_cb = close_cb;
|
121
|
-
uv_close_error(handle, uv_ok_);
|
122
|
-
}
|
123
|
-
|
124
|
-
|
125
|
-
void uv_want_endgame(uv_handle_t* handle) {
|
147
|
+
void uv_want_endgame(uv_loop_t* loop, uv_handle_t* handle) {
|
126
148
|
if (!(handle->flags & UV_HANDLE_ENDGAME_QUEUED)) {
|
127
149
|
handle->flags |= UV_HANDLE_ENDGAME_QUEUED;
|
128
150
|
|
129
|
-
handle->endgame_next =
|
130
|
-
|
151
|
+
handle->endgame_next = loop->endgame_handles;
|
152
|
+
loop->endgame_handles = handle;
|
131
153
|
}
|
132
154
|
}
|
133
155
|
|
134
156
|
|
135
|
-
void uv_process_endgames() {
|
157
|
+
void uv_process_endgames(uv_loop_t* loop) {
|
136
158
|
uv_handle_t* handle;
|
137
159
|
|
138
|
-
while (
|
139
|
-
handle =
|
140
|
-
|
160
|
+
while (loop->endgame_handles) {
|
161
|
+
handle = loop->endgame_handles;
|
162
|
+
loop->endgame_handles = handle->endgame_next;
|
141
163
|
|
142
164
|
handle->flags &= ~UV_HANDLE_ENDGAME_QUEUED;
|
143
165
|
|
144
166
|
switch (handle->type) {
|
145
167
|
case UV_TCP:
|
146
|
-
uv_tcp_endgame((uv_tcp_t*)handle);
|
168
|
+
uv_tcp_endgame(loop, (uv_tcp_t*) handle);
|
147
169
|
break;
|
148
170
|
|
149
171
|
case UV_NAMED_PIPE:
|
150
|
-
uv_pipe_endgame((uv_pipe_t*)handle);
|
172
|
+
uv_pipe_endgame(loop, (uv_pipe_t*) handle);
|
173
|
+
break;
|
174
|
+
|
175
|
+
case UV_UDP:
|
176
|
+
uv_udp_endgame(loop, (uv_udp_t*) handle);
|
151
177
|
break;
|
152
178
|
|
153
179
|
case UV_TIMER:
|
154
|
-
uv_timer_endgame((uv_timer_t*)handle);
|
180
|
+
uv_timer_endgame(loop, (uv_timer_t*) handle);
|
155
181
|
break;
|
156
182
|
|
157
183
|
case UV_PREPARE:
|
158
184
|
case UV_CHECK:
|
159
185
|
case UV_IDLE:
|
160
|
-
uv_loop_watcher_endgame(handle);
|
186
|
+
uv_loop_watcher_endgame(loop, handle);
|
161
187
|
break;
|
162
188
|
|
163
189
|
case UV_ASYNC:
|
164
|
-
uv_async_endgame((uv_async_t*)handle);
|
190
|
+
uv_async_endgame(loop, (uv_async_t*) handle);
|
165
191
|
break;
|
166
192
|
|
167
193
|
case UV_PROCESS:
|
168
|
-
uv_process_endgame((uv_process_t*)handle);
|
194
|
+
uv_process_endgame(loop, (uv_process_t*) handle);
|
169
195
|
break;
|
170
196
|
|
171
197
|
default:
|