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.
- 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:
|