asyncengine 0.0.1.testing
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/README.markdown +0 -0
- data/asyncengine.gemspec +26 -0
- data/ext/asyncengine_ext/asyncengine_ruby.c +82 -0
- data/ext/asyncengine_ext/extconf.rb +47 -0
- data/ext/asyncengine_ext/libuv/AUTHORS +45 -0
- data/ext/asyncengine_ext/libuv/LICENSE +42 -0
- data/ext/asyncengine_ext/libuv/Makefile +119 -0
- data/ext/asyncengine_ext/libuv/README.md +88 -0
- data/ext/asyncengine_ext/libuv/build/gcc_version.py +20 -0
- data/ext/asyncengine_ext/libuv/common.gypi +176 -0
- data/ext/asyncengine_ext/libuv/config-mingw.mk +61 -0
- data/ext/asyncengine_ext/libuv/config-unix.mk +173 -0
- data/ext/asyncengine_ext/libuv/gyp_uv +60 -0
- data/ext/asyncengine_ext/libuv/include/ares.h +591 -0
- data/ext/asyncengine_ext/libuv/include/ares_version.h +24 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/eio.h +403 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/ev.h +838 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/ngx-queue.h +106 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/tree.h +768 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/uv-unix.h +256 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/uv-win.h +458 -0
- data/ext/asyncengine_ext/libuv/include/uv.h +1556 -0
- data/ext/asyncengine_ext/libuv/src/ares/AUTHORS +37 -0
- data/ext/asyncengine_ext/libuv/src/ares/CHANGES +1218 -0
- data/ext/asyncengine_ext/libuv/src/ares/CMakeLists.txt +22 -0
- data/ext/asyncengine_ext/libuv/src/ares/NEWS +21 -0
- data/ext/asyncengine_ext/libuv/src/ares/README +60 -0
- data/ext/asyncengine_ext/libuv/src/ares/README.cares +13 -0
- data/ext/asyncengine_ext/libuv/src/ares/README.msvc +142 -0
- data/ext/asyncengine_ext/libuv/src/ares/README.node +21 -0
- data/ext/asyncengine_ext/libuv/src/ares/RELEASE-NOTES +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/TODO +23 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__close_sockets.c +66 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__get_hostent.c +263 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__read_line.c +71 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__timeval.c +111 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_cancel.c +63 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_data.c +190 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_data.h +65 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_destroy.c +105 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_dns.h +90 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_expand_name.c +200 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_expand_string.c +75 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_fds.c +63 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_free_hostent.c +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_free_string.c +25 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getenv.c +30 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getenv.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_gethostbyaddr.c +301 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_gethostbyname.c +523 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getnameinfo.c +427 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getopt.c +122 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getopt.h +53 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getsock.c +72 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_init.c +1809 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_iphlpapi.h +221 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_ipv6.h +78 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_library_init.c +142 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_library_init.h +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_llist.c +86 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_llist.h +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_mkquery.c +195 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_nowarn.c +181 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_nowarn.h +55 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_options.c +248 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_a_reply.c +263 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_aaaa_reply.c +259 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_mx_reply.c +170 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_ns_reply.c +182 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_ptr_reply.c +217 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_srv_reply.c +179 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_txt_reply.c +201 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_platform.c +11035 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_platform.h +43 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_private.h +355 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_process.c +1295 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_query.c +183 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_rules.h +144 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_search.c +321 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_send.c +134 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_setup.h +199 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strcasecmp.c +66 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strcasecmp.h +30 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strdup.c +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strdup.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strerror.c +56 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_timeout.c +80 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_version.c +11 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_writev.c +79 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_writev.h +36 -0
- data/ext/asyncengine_ext/libuv/src/ares/bitncmp.c +59 -0
- data/ext/asyncengine_ext/libuv/src/ares/bitncmp.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_cygwin/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_darwin/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_freebsd/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_linux/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_netbsd/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_openbsd/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_sunos/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_win32/ares_config.h +369 -0
- data/ext/asyncengine_ext/libuv/src/ares/get_ver.awk +35 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_net_pton.c +451 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_net_pton.h +31 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_ntop.c +208 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_ntop.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/nameser.h +203 -0
- data/ext/asyncengine_ext/libuv/src/ares/setup_once.h +504 -0
- data/ext/asyncengine_ext/libuv/src/ares/windows_port.c +22 -0
- data/ext/asyncengine_ext/libuv/src/unix/async.c +58 -0
- data/ext/asyncengine_ext/libuv/src/unix/cares.c +194 -0
- data/ext/asyncengine_ext/libuv/src/unix/check.c +80 -0
- data/ext/asyncengine_ext/libuv/src/unix/core.c +588 -0
- data/ext/asyncengine_ext/libuv/src/unix/cygwin.c +84 -0
- data/ext/asyncengine_ext/libuv/src/unix/darwin.c +341 -0
- data/ext/asyncengine_ext/libuv/src/unix/dl.c +91 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/Changes +63 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/LICENSE +36 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/Makefile.am +15 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/aclocal.m4 +8957 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/autogen.sh +3 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config.h.in +86 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_cygwin.h +80 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_darwin.h +141 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_freebsd.h +81 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_linux.h +94 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_netbsd.h +81 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_openbsd.h +137 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_sunos.h +84 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/configure.ac +22 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/demo.c +194 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/ecb.h +370 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/eio.3 +3428 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/eio.c +2593 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/eio.pod +969 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/libeio.m4 +195 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/xthread.h +164 -0
- data/ext/asyncengine_ext/libuv/src/unix/error.c +98 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/Changes +388 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/LICENSE +36 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/Makefile.am +18 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/Makefile.in +771 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/README +58 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/aclocal.m4 +8957 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/autogen.sh +6 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config.guess +1526 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config.h.in +125 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config.sub +1658 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_cygwin.h +123 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_darwin.h +122 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_freebsd.h +120 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_linux.h +141 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_netbsd.h +120 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_openbsd.h +126 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_sunos.h +122 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/configure +13037 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/configure.ac +18 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/depcomp +630 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev++.h +816 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev.3 +5311 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev.c +3921 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev.pod +5243 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_epoll.c +266 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_kqueue.c +235 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_poll.c +148 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_port.c +179 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_select.c +310 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_vars.h +203 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_win32.c +153 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_wrap.h +196 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/event.c +402 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/event.h +170 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/install-sh +294 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/libev.m4 +39 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ltmain.sh +8413 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/missing +336 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/mkinstalldirs +111 -0
- data/ext/asyncengine_ext/libuv/src/unix/freebsd.c +312 -0
- data/ext/asyncengine_ext/libuv/src/unix/fs.c +707 -0
- data/ext/asyncengine_ext/libuv/src/unix/idle.c +79 -0
- data/ext/asyncengine_ext/libuv/src/unix/internal.h +161 -0
- data/ext/asyncengine_ext/libuv/src/unix/kqueue.c +127 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/core.c +474 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/inotify.c +211 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/syscalls.c +230 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/syscalls.h +87 -0
- data/ext/asyncengine_ext/libuv/src/unix/loop.c +58 -0
- data/ext/asyncengine_ext/libuv/src/unix/netbsd.c +108 -0
- data/ext/asyncengine_ext/libuv/src/unix/openbsd.c +295 -0
- data/ext/asyncengine_ext/libuv/src/unix/pipe.c +266 -0
- data/ext/asyncengine_ext/libuv/src/unix/prepare.c +79 -0
- data/ext/asyncengine_ext/libuv/src/unix/process.c +369 -0
- data/ext/asyncengine_ext/libuv/src/unix/stream.c +1033 -0
- data/ext/asyncengine_ext/libuv/src/unix/sunos.c +466 -0
- data/ext/asyncengine_ext/libuv/src/unix/tcp.c +327 -0
- data/ext/asyncengine_ext/libuv/src/unix/thread.c +154 -0
- data/ext/asyncengine_ext/libuv/src/unix/timer.c +127 -0
- data/ext/asyncengine_ext/libuv/src/unix/tty.c +146 -0
- data/ext/asyncengine_ext/libuv/src/unix/udp.c +670 -0
- data/ext/asyncengine_ext/libuv/src/unix/uv-eio.c +124 -0
- data/ext/asyncengine_ext/libuv/src/unix/uv-eio.h +13 -0
- data/ext/asyncengine_ext/libuv/src/uv-common.c +354 -0
- data/ext/asyncengine_ext/libuv/src/uv-common.h +87 -0
- data/ext/asyncengine_ext/libuv/src/win/async.c +127 -0
- data/ext/asyncengine_ext/libuv/src/win/cares.c +290 -0
- data/ext/asyncengine_ext/libuv/src/win/core.c +270 -0
- data/ext/asyncengine_ext/libuv/src/win/dl.c +82 -0
- data/ext/asyncengine_ext/libuv/src/win/error.c +132 -0
- data/ext/asyncengine_ext/libuv/src/win/fs-event.c +514 -0
- data/ext/asyncengine_ext/libuv/src/win/fs.c +1576 -0
- data/ext/asyncengine_ext/libuv/src/win/getaddrinfo.c +372 -0
- data/ext/asyncengine_ext/libuv/src/win/handle.c +225 -0
- data/ext/asyncengine_ext/libuv/src/win/internal.h +352 -0
- data/ext/asyncengine_ext/libuv/src/win/loop-watcher.c +131 -0
- data/ext/asyncengine_ext/libuv/src/win/pipe.c +1661 -0
- data/ext/asyncengine_ext/libuv/src/win/process.c +1140 -0
- data/ext/asyncengine_ext/libuv/src/win/req.c +174 -0
- data/ext/asyncengine_ext/libuv/src/win/stream.c +201 -0
- data/ext/asyncengine_ext/libuv/src/win/tcp.c +1282 -0
- data/ext/asyncengine_ext/libuv/src/win/thread.c +332 -0
- data/ext/asyncengine_ext/libuv/src/win/threadpool.c +73 -0
- data/ext/asyncengine_ext/libuv/src/win/timer.c +276 -0
- data/ext/asyncengine_ext/libuv/src/win/tty.c +1795 -0
- data/ext/asyncengine_ext/libuv/src/win/udp.c +709 -0
- data/ext/asyncengine_ext/libuv/src/win/util.c +719 -0
- data/ext/asyncengine_ext/libuv/src/win/winapi.c +117 -0
- data/ext/asyncengine_ext/libuv/src/win/winapi.h +4419 -0
- data/ext/asyncengine_ext/libuv/src/win/winsock.c +470 -0
- data/ext/asyncengine_ext/libuv/src/win/winsock.h +138 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-ares.c +118 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-getaddrinfo.c +94 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-list.h +105 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-ping-pongs.c +213 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-pound.c +324 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-pump.c +462 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-sizes.c +40 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-spawn.c +156 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-tcp-write-batch.c +140 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-thread.c +64 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-udp-packet-storm.c +247 -0
- data/ext/asyncengine_ext/libuv/test/blackhole-server.c +118 -0
- data/ext/asyncengine_ext/libuv/test/dns-server.c +321 -0
- data/ext/asyncengine_ext/libuv/test/echo-server.c +370 -0
- data/ext/asyncengine_ext/libuv/test/fixtures/empty_file +0 -0
- data/ext/asyncengine_ext/libuv/test/fixtures/load_error.node +1 -0
- data/ext/asyncengine_ext/libuv/test/run-benchmarks.c +64 -0
- data/ext/asyncengine_ext/libuv/test/run-tests.c +108 -0
- data/ext/asyncengine_ext/libuv/test/runner-unix.c +315 -0
- data/ext/asyncengine_ext/libuv/test/runner-unix.h +36 -0
- data/ext/asyncengine_ext/libuv/test/runner-win.c +343 -0
- data/ext/asyncengine_ext/libuv/test/runner-win.h +42 -0
- data/ext/asyncengine_ext/libuv/test/runner.c +317 -0
- data/ext/asyncengine_ext/libuv/test/runner.h +159 -0
- data/ext/asyncengine_ext/libuv/test/task.h +117 -0
- data/ext/asyncengine_ext/libuv/test/test-async.c +216 -0
- data/ext/asyncengine_ext/libuv/test/test-callback-stack.c +203 -0
- data/ext/asyncengine_ext/libuv/test/test-connection-fail.c +148 -0
- data/ext/asyncengine_ext/libuv/test/test-counters-init.c +216 -0
- data/ext/asyncengine_ext/libuv/test/test-cwd-and-chdir.c +64 -0
- data/ext/asyncengine_ext/libuv/test/test-delayed-accept.c +197 -0
- data/ext/asyncengine_ext/libuv/test/test-dlerror.c +49 -0
- data/ext/asyncengine_ext/libuv/test/test-eio-overflow.c +90 -0
- data/ext/asyncengine_ext/libuv/test/test-error.c +59 -0
- data/ext/asyncengine_ext/libuv/test/test-fail-always.c +29 -0
- data/ext/asyncengine_ext/libuv/test/test-fs-event.c +442 -0
- data/ext/asyncengine_ext/libuv/test/test-fs.c +1731 -0
- data/ext/asyncengine_ext/libuv/test/test-get-currentexe.c +63 -0
- data/ext/asyncengine_ext/libuv/test/test-get-loadavg.c +36 -0
- data/ext/asyncengine_ext/libuv/test/test-get-memory.c +38 -0
- data/ext/asyncengine_ext/libuv/test/test-getaddrinfo.c +122 -0
- data/ext/asyncengine_ext/libuv/test/test-gethostbyname.c +189 -0
- data/ext/asyncengine_ext/libuv/test/test-getsockname.c +342 -0
- data/ext/asyncengine_ext/libuv/test/test-hrtime.c +51 -0
- data/ext/asyncengine_ext/libuv/test/test-idle.c +81 -0
- data/ext/asyncengine_ext/libuv/test/test-ipc-send-recv.c +209 -0
- data/ext/asyncengine_ext/libuv/test/test-ipc.c +614 -0
- data/ext/asyncengine_ext/libuv/test/test-list.h +371 -0
- data/ext/asyncengine_ext/libuv/test/test-loop-handles.c +359 -0
- data/ext/asyncengine_ext/libuv/test/test-multiple-listen.c +102 -0
- data/ext/asyncengine_ext/libuv/test/test-mutexes.c +63 -0
- data/ext/asyncengine_ext/libuv/test/test-pass-always.c +28 -0
- data/ext/asyncengine_ext/libuv/test/test-ping-pong.c +253 -0
- data/ext/asyncengine_ext/libuv/test/test-pipe-bind-error.c +140 -0
- data/ext/asyncengine_ext/libuv/test/test-pipe-connect-error.c +96 -0
- data/ext/asyncengine_ext/libuv/test/test-platform-output.c +87 -0
- data/ext/asyncengine_ext/libuv/test/test-process-title.c +42 -0
- data/ext/asyncengine_ext/libuv/test/test-ref.c +322 -0
- data/ext/asyncengine_ext/libuv/test/test-run-once.c +44 -0
- data/ext/asyncengine_ext/libuv/test/test-shutdown-close.c +103 -0
- data/ext/asyncengine_ext/libuv/test/test-shutdown-eof.c +183 -0
- data/ext/asyncengine_ext/libuv/test/test-spawn.c +499 -0
- data/ext/asyncengine_ext/libuv/test/test-stdio-over-pipes.c +256 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-bind-error.c +191 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-bind6-error.c +154 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-close.c +129 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-connect-error.c +70 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-connect6-error.c +68 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-flags.c +51 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-write-error.c +168 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-write-to-half-open-connection.c +135 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-writealot.c +195 -0
- data/ext/asyncengine_ext/libuv/test/test-thread.c +183 -0
- data/ext/asyncengine_ext/libuv/test/test-threadpool.c +57 -0
- data/ext/asyncengine_ext/libuv/test/test-timer-again.c +141 -0
- data/ext/asyncengine_ext/libuv/test/test-timer.c +130 -0
- data/ext/asyncengine_ext/libuv/test/test-tty.c +110 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-dgram-too-big.c +86 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-ipv6.c +156 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-multicast-join.c +139 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-multicast-ttl.c +86 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-options.c +86 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-send-and-recv.c +208 -0
- data/ext/asyncengine_ext/libuv/test/test-util.c +97 -0
- data/ext/asyncengine_ext/libuv/uv.gyp +435 -0
- data/ext/asyncengine_ext/libuv/vcbuild.bat +105 -0
- data/lib/asyncengine/version.rb +3 -0
- data/lib/asyncengine.rb +41 -0
- metadata +384 -0
@@ -0,0 +1,195 @@
|
|
1
|
+
dnl openbsd in it's neverending brokenness requires stdint.h for intptr_t,
|
2
|
+
dnl but that header isn't very portable...
|
3
|
+
AC_CHECK_HEADERS([stdint.h sys/syscall.h sys/prctl.h])
|
4
|
+
|
5
|
+
AC_SEARCH_LIBS(
|
6
|
+
pthread_create,
|
7
|
+
[pthread pthreads pthreadVC2],
|
8
|
+
,
|
9
|
+
[AC_MSG_ERROR(pthread functions not found)]
|
10
|
+
)
|
11
|
+
|
12
|
+
AC_CACHE_CHECK(for utimes, ac_cv_utimes, [AC_LINK_IFELSE([[
|
13
|
+
#include <sys/types.h>
|
14
|
+
#include <sys/time.h>
|
15
|
+
#include <utime.h>
|
16
|
+
struct timeval tv[2];
|
17
|
+
int res;
|
18
|
+
int main (void)
|
19
|
+
{
|
20
|
+
res = utimes ("/", tv);
|
21
|
+
return 0;
|
22
|
+
}
|
23
|
+
]],ac_cv_utimes=yes,ac_cv_utimes=no)])
|
24
|
+
test $ac_cv_utimes = yes && AC_DEFINE(HAVE_UTIMES, 1, utimes(2) is available)
|
25
|
+
|
26
|
+
AC_CACHE_CHECK(for futimes, ac_cv_futimes, [AC_LINK_IFELSE([[
|
27
|
+
#include <sys/types.h>
|
28
|
+
#include <sys/time.h>
|
29
|
+
#include <utime.h>
|
30
|
+
struct timeval tv[2];
|
31
|
+
int res;
|
32
|
+
int fd;
|
33
|
+
int main (void)
|
34
|
+
{
|
35
|
+
res = futimes (fd, tv);
|
36
|
+
return 0;
|
37
|
+
}
|
38
|
+
]],ac_cv_futimes=yes,ac_cv_futimes=no)])
|
39
|
+
test $ac_cv_futimes = yes && AC_DEFINE(HAVE_FUTIMES, 1, futimes(2) is available)
|
40
|
+
|
41
|
+
AC_CACHE_CHECK(for readahead, ac_cv_readahead, [AC_LINK_IFELSE([
|
42
|
+
#include <fcntl.h>
|
43
|
+
int main (void)
|
44
|
+
{
|
45
|
+
int fd = 0;
|
46
|
+
size_t count = 2;
|
47
|
+
ssize_t res;
|
48
|
+
res = readahead (fd, 0, count);
|
49
|
+
return 0;
|
50
|
+
}
|
51
|
+
],ac_cv_readahead=yes,ac_cv_readahead=no)])
|
52
|
+
test $ac_cv_readahead = yes && AC_DEFINE(HAVE_READAHEAD, 1, readahead(2) is available (linux))
|
53
|
+
|
54
|
+
AC_CACHE_CHECK(for fdatasync, ac_cv_fdatasync, [AC_LINK_IFELSE([
|
55
|
+
#include <unistd.h>
|
56
|
+
int main (void)
|
57
|
+
{
|
58
|
+
int fd = 0;
|
59
|
+
fdatasync (fd);
|
60
|
+
return 0;
|
61
|
+
}
|
62
|
+
],ac_cv_fdatasync=yes,ac_cv_fdatasync=no)])
|
63
|
+
test $ac_cv_fdatasync = yes && AC_DEFINE(HAVE_FDATASYNC, 1, fdatasync(2) is available)
|
64
|
+
|
65
|
+
AC_CACHE_CHECK(for pread and pwrite, ac_cv_preadwrite, [AC_LINK_IFELSE([
|
66
|
+
#include <unistd.h>
|
67
|
+
int main (void)
|
68
|
+
{
|
69
|
+
int fd = 0;
|
70
|
+
size_t count = 1;
|
71
|
+
char buf;
|
72
|
+
off_t offset = 1;
|
73
|
+
ssize_t res;
|
74
|
+
res = pread (fd, &buf, count, offset);
|
75
|
+
res = pwrite (fd, &buf, count, offset);
|
76
|
+
return 0;
|
77
|
+
}
|
78
|
+
],ac_cv_preadwrite=yes,ac_cv_preadwrite=no)])
|
79
|
+
test $ac_cv_preadwrite = yes && AC_DEFINE(HAVE_PREADWRITE, 1, pread(2) and pwrite(2) are available)
|
80
|
+
|
81
|
+
AC_CACHE_CHECK(for sendfile, ac_cv_sendfile, [AC_LINK_IFELSE([
|
82
|
+
# include <sys/types.h>
|
83
|
+
#if __linux
|
84
|
+
# include <sys/sendfile.h>
|
85
|
+
#elif __FreeBSD__ || defined __APPLE__
|
86
|
+
# include <sys/socket.h>
|
87
|
+
# include <sys/uio.h>
|
88
|
+
#elif __hpux
|
89
|
+
# include <sys/socket.h>
|
90
|
+
#else
|
91
|
+
# error unsupported architecture
|
92
|
+
#endif
|
93
|
+
int main (void)
|
94
|
+
{
|
95
|
+
int fd = 0;
|
96
|
+
off_t offset = 1;
|
97
|
+
size_t count = 2;
|
98
|
+
ssize_t res;
|
99
|
+
#if __linux
|
100
|
+
res = sendfile (fd, fd, offset, count);
|
101
|
+
#elif __FreeBSD__
|
102
|
+
res = sendfile (fd, fd, offset, count, 0, &offset, 0);
|
103
|
+
#elif __hpux
|
104
|
+
res = sendfile (fd, fd, offset, count, 0, 0);
|
105
|
+
#endif
|
106
|
+
return 0;
|
107
|
+
}
|
108
|
+
],ac_cv_sendfile=yes,ac_cv_sendfile=no)])
|
109
|
+
test $ac_cv_sendfile = yes && AC_DEFINE(HAVE_SENDFILE, 1, sendfile(2) is available and supported)
|
110
|
+
|
111
|
+
AC_CACHE_CHECK(for sync_file_range, ac_cv_sync_file_range, [AC_LINK_IFELSE([
|
112
|
+
#include <fcntl.h>
|
113
|
+
int main (void)
|
114
|
+
{
|
115
|
+
int fd = 0;
|
116
|
+
off64_t offset = 1;
|
117
|
+
off64_t nbytes = 1;
|
118
|
+
unsigned int flags = SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER;
|
119
|
+
ssize_t res;
|
120
|
+
res = sync_file_range (fd, offset, nbytes, flags);
|
121
|
+
return 0;
|
122
|
+
}
|
123
|
+
],ac_cv_sync_file_range=yes,ac_cv_sync_file_range=no)])
|
124
|
+
test $ac_cv_sync_file_range = yes && AC_DEFINE(HAVE_SYNC_FILE_RANGE, 1, sync_file_range(2) is available)
|
125
|
+
|
126
|
+
AC_CACHE_CHECK(for fallocate, ac_cv_fallocate, [AC_LINK_IFELSE([
|
127
|
+
#include <fcntl.h>
|
128
|
+
int main (void)
|
129
|
+
{
|
130
|
+
int fd = 0;
|
131
|
+
int mode = 0;
|
132
|
+
off_t offset = 1;
|
133
|
+
off_t len = 1;
|
134
|
+
int res;
|
135
|
+
res = fallocate (fd, mode, offset, len);
|
136
|
+
return 0;
|
137
|
+
}
|
138
|
+
],ac_cv_fallocate=yes,ac_cv_fallocate=no)])
|
139
|
+
test $ac_cv_fallocate = yes && AC_DEFINE(HAVE_FALLOCATE, 1, fallocate(2) is available)
|
140
|
+
|
141
|
+
AC_CACHE_CHECK(for sys_syncfs, ac_cv_sys_syncfs, [AC_LINK_IFELSE([
|
142
|
+
#include <unistd.h>
|
143
|
+
#include <sys/syscall.h>
|
144
|
+
int main (void)
|
145
|
+
{
|
146
|
+
int res = syscall (__NR_syncfs, (int)0);
|
147
|
+
}
|
148
|
+
],ac_cv_sys_syncfs=yes,ac_cv_sys_syncfs=no)])
|
149
|
+
test $ac_cv_sys_syncfs = yes && AC_DEFINE(HAVE_SYS_SYNCFS, 1, syscall(__NR_syncfs) is available)
|
150
|
+
|
151
|
+
AC_CACHE_CHECK(for prctl_set_name, ac_cv_prctl_set_name, [AC_LINK_IFELSE([
|
152
|
+
#include <sys/prctl.h>
|
153
|
+
int main (void)
|
154
|
+
{
|
155
|
+
char name[] = "test123";
|
156
|
+
int res = prctl (PR_SET_NAME, (unsigned long)name, 0, 0, 0);
|
157
|
+
}
|
158
|
+
],ac_cv_prctl_set_name=yes,ac_cv_prctl_set_name=no)])
|
159
|
+
test $ac_cv_prctl_set_name = yes && AC_DEFINE(HAVE_PRCTL_SET_NAME, 1, prctl(PR_SET_NAME) is available)
|
160
|
+
|
161
|
+
dnl #############################################################################
|
162
|
+
dnl # these checks exist for the benefit of IO::AIO
|
163
|
+
|
164
|
+
dnl at least uclibc defines _POSIX_ADVISORY_INFO without *any* of the required
|
165
|
+
dnl functionality actually being present. ugh.
|
166
|
+
AC_CACHE_CHECK(for posix_madvise, ac_cv_posix_madvise, [AC_LINK_IFELSE([
|
167
|
+
#include <sys/mman.h>
|
168
|
+
int main (void)
|
169
|
+
{
|
170
|
+
int res = posix_madvise ((void *)0, (size_t)0, POSIX_MADV_NORMAL);
|
171
|
+
int a = POSIX_MADV_SEQUENTIAL;
|
172
|
+
int b = POSIX_MADV_RANDOM;
|
173
|
+
int c = POSIX_MADV_WILLNEED;
|
174
|
+
int d = POSIX_MADV_DONTNEED;
|
175
|
+
return 0;
|
176
|
+
}
|
177
|
+
],ac_cv_posix_madvise=yes,ac_cv_posix_madvise=no)])
|
178
|
+
test $ac_cv_posix_madvise = yes && AC_DEFINE(HAVE_POSIX_MADVISE, 1, posix_madvise(2) is available)
|
179
|
+
|
180
|
+
AC_CACHE_CHECK(for posix_fadvise, ac_cv_posix_fadvise, [AC_LINK_IFELSE([
|
181
|
+
#define _XOPEN_SOURCE 600
|
182
|
+
#include <fcntl.h>
|
183
|
+
int main (void)
|
184
|
+
{
|
185
|
+
int res = posix_fadvise ((int)0, (off_t)0, (off_t)0, POSIX_FADV_NORMAL);
|
186
|
+
int a = POSIX_FADV_SEQUENTIAL;
|
187
|
+
int b = POSIX_FADV_NOREUSE;
|
188
|
+
int c = POSIX_FADV_RANDOM;
|
189
|
+
int d = POSIX_FADV_WILLNEED;
|
190
|
+
int e = POSIX_FADV_DONTNEED;
|
191
|
+
return 0;
|
192
|
+
}
|
193
|
+
],ac_cv_posix_fadvise=yes,ac_cv_posix_fadvise=no)])
|
194
|
+
test $ac_cv_posix_fadvise = yes && AC_DEFINE(HAVE_POSIX_FADVISE, 1, posix_fadvise(2) is available)
|
195
|
+
|
@@ -0,0 +1,164 @@
|
|
1
|
+
#ifndef XTHREAD_H_
|
2
|
+
#define XTHREAD_H_
|
3
|
+
|
4
|
+
/* whether word reads are potentially non-atomic.
|
5
|
+
* this is conservative, likely most arches this runs
|
6
|
+
* on have atomic word read/writes.
|
7
|
+
*/
|
8
|
+
#ifndef WORDACCESS_UNSAFE
|
9
|
+
# if __i386 || __x86_64
|
10
|
+
# define WORDACCESS_UNSAFE 0
|
11
|
+
# else
|
12
|
+
# define WORDACCESS_UNSAFE 1
|
13
|
+
# endif
|
14
|
+
#endif
|
15
|
+
|
16
|
+
/////////////////////////////////////////////////////////////////////////////
|
17
|
+
|
18
|
+
#ifdef _WIN32
|
19
|
+
|
20
|
+
#include <stdio.h>//D
|
21
|
+
#include <fcntl.h>
|
22
|
+
#include <io.h>
|
23
|
+
#include <time.h>
|
24
|
+
#include <winsock2.h>
|
25
|
+
#include <process.h>
|
26
|
+
#include <windows.h>
|
27
|
+
#include <pthread.h>
|
28
|
+
#define sigset_t int
|
29
|
+
#define sigfillset(a)
|
30
|
+
#define pthread_sigmask(a,b,c)
|
31
|
+
#define sigaddset(a,b)
|
32
|
+
#define sigemptyset(s)
|
33
|
+
|
34
|
+
typedef pthread_mutex_t xmutex_t;
|
35
|
+
#define X_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
|
36
|
+
#define X_MUTEX_CREATE(mutex) pthread_mutex_init (&(mutex), 0)
|
37
|
+
#define X_LOCK(mutex) pthread_mutex_lock (&(mutex))
|
38
|
+
#define X_UNLOCK(mutex) pthread_mutex_unlock (&(mutex))
|
39
|
+
|
40
|
+
typedef pthread_cond_t xcond_t;
|
41
|
+
#define X_COND_INIT PTHREAD_COND_INITIALIZER
|
42
|
+
#define X_COND_CREATE(cond) pthread_cond_init (&(cond), 0)
|
43
|
+
#define X_COND_SIGNAL(cond) pthread_cond_signal (&(cond))
|
44
|
+
#define X_COND_WAIT(cond,mutex) pthread_cond_wait (&(cond), &(mutex))
|
45
|
+
#define X_COND_TIMEDWAIT(cond,mutex,to) pthread_cond_timedwait (&(cond), &(mutex), &(to))
|
46
|
+
|
47
|
+
typedef pthread_t xthread_t;
|
48
|
+
#define X_THREAD_PROC(name) void *name (void *thr_arg)
|
49
|
+
#define X_THREAD_ATFORK(a,b,c)
|
50
|
+
|
51
|
+
static int
|
52
|
+
thread_create (xthread_t *tid, void *(*proc)(void *), void *arg)
|
53
|
+
{
|
54
|
+
int retval;
|
55
|
+
pthread_attr_t attr;
|
56
|
+
|
57
|
+
pthread_attr_init (&attr);
|
58
|
+
pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
|
59
|
+
|
60
|
+
retval = pthread_create (tid, &attr, proc, arg) == 0;
|
61
|
+
|
62
|
+
pthread_attr_destroy (&attr);
|
63
|
+
|
64
|
+
return retval;
|
65
|
+
}
|
66
|
+
|
67
|
+
#define respipe_read(a,b,c) PerlSock_recv ((a), (b), (c), 0)
|
68
|
+
#define respipe_write(a,b,c) send ((a), (b), (c), 0)
|
69
|
+
#define respipe_close(a) PerlSock_closesocket ((a))
|
70
|
+
|
71
|
+
#else
|
72
|
+
/////////////////////////////////////////////////////////////////////////////
|
73
|
+
|
74
|
+
#if __linux && !defined(_GNU_SOURCE)
|
75
|
+
# define _GNU_SOURCE
|
76
|
+
#endif
|
77
|
+
|
78
|
+
/* just in case */
|
79
|
+
#define _REENTRANT 1
|
80
|
+
|
81
|
+
#if __solaris
|
82
|
+
# define _POSIX_PTHREAD_SEMANTICS 1
|
83
|
+
/* try to bribe solaris headers into providing a current pthread API
|
84
|
+
* despite environment being configured for an older version.
|
85
|
+
*/
|
86
|
+
# define __EXTENSIONS__ 1
|
87
|
+
#endif
|
88
|
+
|
89
|
+
#include <unistd.h>
|
90
|
+
#include <fcntl.h>
|
91
|
+
#include <signal.h>
|
92
|
+
#include <limits.h>
|
93
|
+
#include <pthread.h>
|
94
|
+
|
95
|
+
typedef pthread_mutex_t xmutex_t;
|
96
|
+
#if __linux && defined (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP)
|
97
|
+
# define X_MUTEX_INIT PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
|
98
|
+
# define X_MUTEX_CREATE(mutex) \
|
99
|
+
do { \
|
100
|
+
pthread_mutexattr_t attr; \
|
101
|
+
pthread_mutexattr_init (&attr); \
|
102
|
+
pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_ADAPTIVE_NP); \
|
103
|
+
pthread_mutex_init (&(mutex), &attr); \
|
104
|
+
} while (0)
|
105
|
+
#else
|
106
|
+
# define X_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
|
107
|
+
# define X_MUTEX_CREATE(mutex) pthread_mutex_init (&(mutex), 0)
|
108
|
+
#endif
|
109
|
+
#define X_LOCK(mutex) pthread_mutex_lock (&(mutex))
|
110
|
+
#define X_UNLOCK(mutex) pthread_mutex_unlock (&(mutex))
|
111
|
+
|
112
|
+
typedef pthread_cond_t xcond_t;
|
113
|
+
#define X_COND_INIT PTHREAD_COND_INITIALIZER
|
114
|
+
#define X_COND_CREATE(cond) pthread_cond_init (&(cond), 0)
|
115
|
+
#define X_COND_SIGNAL(cond) pthread_cond_signal (&(cond))
|
116
|
+
#define X_COND_WAIT(cond,mutex) pthread_cond_wait (&(cond), &(mutex))
|
117
|
+
#define X_COND_TIMEDWAIT(cond,mutex,to) pthread_cond_timedwait (&(cond), &(mutex), &(to))
|
118
|
+
|
119
|
+
typedef pthread_t xthread_t;
|
120
|
+
#define X_THREAD_PROC(name) static void *name (void *thr_arg)
|
121
|
+
#define X_THREAD_ATFORK(prepare,parent,child) pthread_atfork (prepare, parent, child)
|
122
|
+
|
123
|
+
// the broken bsd's once more
|
124
|
+
#ifndef PTHREAD_STACK_MIN
|
125
|
+
# define PTHREAD_STACK_MIN 0
|
126
|
+
#endif
|
127
|
+
|
128
|
+
#ifndef XTHREAD_STACKSIZE
|
129
|
+
# define XTHREAD_STACKSIZE sizeof (void *) * 4096
|
130
|
+
#endif
|
131
|
+
|
132
|
+
static int
|
133
|
+
thread_create (xthread_t *tid, void *(*proc)(void *), void *arg)
|
134
|
+
{
|
135
|
+
int retval;
|
136
|
+
sigset_t fullsigset, oldsigset;
|
137
|
+
pthread_attr_t attr;
|
138
|
+
|
139
|
+
pthread_attr_init (&attr);
|
140
|
+
pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
|
141
|
+
pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN < X_STACKSIZE ? X_STACKSIZE : PTHREAD_STACK_MIN);
|
142
|
+
#ifdef PTHREAD_SCOPE_PROCESS
|
143
|
+
pthread_attr_setscope (&attr, PTHREAD_SCOPE_PROCESS);
|
144
|
+
#endif
|
145
|
+
|
146
|
+
sigfillset (&fullsigset);
|
147
|
+
|
148
|
+
pthread_sigmask (SIG_SETMASK, &fullsigset, &oldsigset);
|
149
|
+
retval = pthread_create (tid, &attr, proc, arg) == 0;
|
150
|
+
pthread_sigmask (SIG_SETMASK, &oldsigset, 0);
|
151
|
+
|
152
|
+
pthread_attr_destroy (&attr);
|
153
|
+
|
154
|
+
return retval;
|
155
|
+
}
|
156
|
+
|
157
|
+
#define respipe_read(a,b,c) read ((a), (b), (c))
|
158
|
+
#define respipe_write(a,b,c) write ((a), (b), (c))
|
159
|
+
#define respipe_close(a) close ((a))
|
160
|
+
|
161
|
+
#endif
|
162
|
+
|
163
|
+
#endif
|
164
|
+
|
@@ -0,0 +1,98 @@
|
|
1
|
+
/* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
2
|
+
*
|
3
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
* of this software and associated documentation files (the "Software"), to
|
5
|
+
* deal in the Software without restriction, including without limitation the
|
6
|
+
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
7
|
+
* sell copies of the Software, and to permit persons to whom the Software is
|
8
|
+
* furnished to do so, subject to the following conditions:
|
9
|
+
*
|
10
|
+
* The above copyright notice and this permission notice shall be included in
|
11
|
+
* all copies or substantial portions of the Software.
|
12
|
+
*
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
18
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
19
|
+
* IN THE SOFTWARE.
|
20
|
+
*/
|
21
|
+
|
22
|
+
/*
|
23
|
+
* TODO Share this code with Windows.
|
24
|
+
* See https://github.com/joyent/libuv/issues/76
|
25
|
+
*/
|
26
|
+
|
27
|
+
#include "uv.h"
|
28
|
+
#include "internal.h"
|
29
|
+
|
30
|
+
#include <errno.h>
|
31
|
+
#include <stdio.h>
|
32
|
+
#include <stdlib.h>
|
33
|
+
#include <string.h>
|
34
|
+
#include <assert.h>
|
35
|
+
|
36
|
+
|
37
|
+
/* TODO Expose callback to user to handle fatal error like V8 does. */
|
38
|
+
void uv_fatal_error(const int errorno, const char* syscall) {
|
39
|
+
char* buf = NULL;
|
40
|
+
const char* errmsg;
|
41
|
+
|
42
|
+
if (buf) {
|
43
|
+
errmsg = buf;
|
44
|
+
} else {
|
45
|
+
errmsg = "Unknown error";
|
46
|
+
}
|
47
|
+
|
48
|
+
if (syscall) {
|
49
|
+
fprintf(stderr, "\nlibuv fatal error. %s: (%d) %s\n", syscall, errorno,
|
50
|
+
errmsg);
|
51
|
+
} else {
|
52
|
+
fprintf(stderr, "\nlibuv fatal error. (%d) %s\n", errorno, errmsg);
|
53
|
+
}
|
54
|
+
|
55
|
+
abort();
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
uv_err_code uv_translate_sys_error(int sys_errno) {
|
60
|
+
switch (sys_errno) {
|
61
|
+
case 0: return UV_OK;
|
62
|
+
case EPERM: return UV_EPERM;
|
63
|
+
case ENOSYS: return UV_ENOSYS;
|
64
|
+
case ENOTSOCK: return UV_ENOTSOCK;
|
65
|
+
case ENOENT: return UV_ENOENT;
|
66
|
+
case EACCES: return UV_EACCES;
|
67
|
+
case EAFNOSUPPORT: return UV_EAFNOSUPPORT;
|
68
|
+
case EBADF: return UV_EBADF;
|
69
|
+
case EPIPE: return UV_EPIPE;
|
70
|
+
case EAGAIN: return UV_EAGAIN;
|
71
|
+
case ECONNRESET: return UV_ECONNRESET;
|
72
|
+
case EFAULT: return UV_EFAULT;
|
73
|
+
case EMFILE: return UV_EMFILE;
|
74
|
+
case EMSGSIZE: return UV_EMSGSIZE;
|
75
|
+
case ENAMETOOLONG: return UV_ENAMETOOLONG;
|
76
|
+
case EINVAL: return UV_EINVAL;
|
77
|
+
case ENETUNREACH: return UV_ENETUNREACH;
|
78
|
+
case ECONNABORTED: return UV_ECONNABORTED;
|
79
|
+
case ELOOP: return UV_ELOOP;
|
80
|
+
case ECONNREFUSED: return UV_ECONNREFUSED;
|
81
|
+
case EADDRINUSE: return UV_EADDRINUSE;
|
82
|
+
case EADDRNOTAVAIL: return UV_EADDRNOTAVAIL;
|
83
|
+
case ENOTDIR: return UV_ENOTDIR;
|
84
|
+
case EISDIR: return UV_EISDIR;
|
85
|
+
case ENOTCONN: return UV_ENOTCONN;
|
86
|
+
case EEXIST: return UV_EEXIST;
|
87
|
+
case EHOSTUNREACH: return UV_EHOSTUNREACH;
|
88
|
+
case EAI_NONAME: return UV_ENOENT;
|
89
|
+
case ESRCH: return UV_ESRCH;
|
90
|
+
case ETIMEDOUT: return UV_ETIMEDOUT;
|
91
|
+
case EXDEV: return UV_EXDEV;
|
92
|
+
case EBUSY: return UV_EBUSY;
|
93
|
+
case ENOTEMPTY: return UV_ENOTEMPTY;
|
94
|
+
case ENOSPC: return UV_ENOSPC;
|
95
|
+
default: return UV_UNKNOWN;
|
96
|
+
}
|
97
|
+
UNREACHABLE();
|
98
|
+
}
|