From d975d2868787e89a1bc9539ab6f65d7548eded1d Mon Sep 17 00:00:00 2001 From: Joe Cheng Date: Wed, 22 Oct 2014 10:53:42 -0700 Subject: [PATCH] Update libuv to v0.10.29 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squashed commit of the following: commit 2416581b599d8452d81bac1ae0eab02f34f50136 Merge: 27bce72 2d72854 Author: Joe Cheng Date: Wed Oct 22 10:35:49 2014 -0700 Merge tag 'v0.10.29' 2014.10.21, Version 0.10.29 (Stable) Changes since version 0.10.28: * darwin: allocate enough space for select() hack (Fedor Indutny) * linux: try epoll_pwait if epoll_wait is missing (Michael Hudson-Doyle) * windows: map ERROR_INVALID_DRIVE to UV_ENOENT (Saúl Ibarra Corretgé) commit 2d728542d3790183417f8f122a110693cd85db14 Author: Saúl Ibarra Corretgé Date: Tue Oct 21 01:01:03 2014 +0200 2014.10.21, Version 0.10.29 (Stable) Changes since version 0.10.28: * darwin: allocate enough space for select() hack (Fedor Indutny) * linux: try epoll_pwait if epoll_wait is missing (Michael Hudson-Doyle) * windows: map ERROR_INVALID_DRIVE to UV_ENOENT (Saúl Ibarra Corretgé) commit 5e507159c93e2f3f2102552dc56ae8530aec6e49 Author: Saúl Ibarra Corretgé Date: Sun Jul 6 21:00:59 2014 +0200 windows: map ERROR_INVALID_DRIVE to UV_ENOENT Backport c44f264641bd60bdc53b6e3f2e56d82ba43011d8 for v0.10 branch. commit ef7b783d8d581f49a68f32f426c18b0fff9c78e3 Author: Michael Hudson-Doyle Date: Mon Sep 15 21:27:05 2014 +1200 linux: try epoll_pwait if epoll_wait is missing It seems that epoll_wait is implemented in glibc in terms of epoll_pwait and new architectures (like arm64) do not implement the epoll_wait syscall at all. So if epoll_wait errors with ENOSYS, just call epoll_pwait. This is a backport of 861de3d71d40bdd22712f0079cd38f41be75010d for v0.10 branch. commit c60d6af011646ed40be93fdf1d83ed2d6d7cc786 Author: Fedor Indutny Date: Sun Sep 7 23:56:15 2014 +0100 darwin: allocate enough space for select() hack `fd_set`s are way too small for `select()` hack when stream's fd is bigger than 1023. Make `fd_set`s a part of `uv__stream_select_t` structure. fix #1461 Conflicts: src/unix/stream.c commit 71b71289871e31b83a60ad9e278c511b8f2a4a95 Author: Timothy J Fontaine Date: Thu Jul 31 09:29:01 2014 -0700 Now working on v0.10.29 commit 9c14b616f5fb84bfd7d45707bab4bbb85894443e Author: Timothy J Fontaine Date: Thu Jul 31 09:28:58 2014 -0700 2014.07.32, Version 0.10.28 (Stable) Changes since version 0.10.27: * windows: fix handling closed socket while poll handle is closing (Saúl Ibarra Corretgé) * unix: return system error on EAI_SYSTEM (Saúl Ibarra Corretgé) * unix: fix bogus structure field name (Saúl Ibarra Corretgé) * darwin: invoke `mach_timebase_info` only once (Fedor Indutny) commit 27bce72beb75e7ef3d2910c7e3a339e5a3299a43 Merge: d84acc6 6e24ce2 Author: Joe Cheng Date: Thu Jul 24 09:50:12 2014 -0700 Merge tag 'v0.10.27' 2014.05.02, Version 0.10.27 (Stable) Changes since version 0.10.26: * windows: fix console signal handler refcount (Saúl Ibarra Corretgé) * win: always leave crit section in get_proc_title (Fedor Indutny) commit 211bf4ec37a73dea06d15233ffa747e9387b8947 Author: Fedor Indutny Date: Thu Jun 19 11:27:24 2014 -0400 darwin: invoke `mach_timebase_info` only once According to @aktau, the call to `mach_timebase_info` costs 90% of the total execution time of `uv_hrtime()`. The result of the call is static on all existing platforms, so there is no need in invoking it multiple times. Signed-off-by: Fedor Indutny commit 58f87691a4077013dc032cd523ab8b0d4595a9e6 Author: Saúl Ibarra Corretgé Date: Thu Jun 19 09:12:52 2014 +0200 unix: fix bogus structure field name commit dd893814ad37d9fc051c9c2db0ca21d45d7b65e3 Author: Saúl Ibarra Corretgé Date: Wed Jun 18 01:18:55 2014 +0200 unix: return system error on EAI_SYSTEM commit 12bb46c095032b5106ffbd6feb1931917dcdd9d9 Author: Saúl Ibarra Corretgé Date: Mon May 12 16:48:52 2014 +0200 windows: fix handling closed socket while poll handle is closing fixes #1278 (backport from master for v0.10 branch) commit c38e97ee4deee7480ab60dc540f374cb472e02d8 Author: Fedor Indutny Date: Fri Apr 11 03:42:06 2014 +0400 test: fix EPIPE race in spawn_closed_process_io The just created stdin should not be closed by a child process before writing to it, otherwise EPIPE happens. commit 6e24ce23b1e7576059f85a608eca13b766458a01 Author: Timothy J Fontaine Date: Thu May 1 09:23:46 2014 -0700 2014.05.02, Version 0.10.27 (Stable) Changes since version 0.10.26: * windows: fix console signal handler refcount (Saúl Ibarra Corretgé) * win: always leave crit section in get_proc_title (Fedor Indutny) commit 4f8d4a0135ef4a3ba4b97a2138f9fd07acebb938 Author: Timothy J Fontaine Date: Thu May 1 09:23:46 2014 -0700 Now working on v0.10.28 commit 4a67d8cc0e00d0c7341ae62c2f73d59811c82c85 Author: Timothy J Fontaine Date: Mon Apr 14 10:07:33 2014 -0700 build: add vc-set-2012 label commit ffb49220cf83d251fb7681a28992dc29fdadc9c7 Author: Fedor Indutny Date: Mon Apr 14 13:42:14 2014 +0400 win: always leave crit section in get_proc_title fix #1235 commit 23d130b2095f0e430683f2db40bf7f16ee8744cd Author: Fedor Indutny Date: Mon Apr 14 15:13:20 2014 +0400 Revert "inet: allow scope in `uv_inet_pton` ip6 check" This reverts commit d30e3ab65acf7b77945658d3e6127ca6af6eec6, because it is a new feature! commit d30e3ab65acf7b77945658d3e6127ca6af6eec6d Author: Fedor Indutny Date: Sun Apr 13 15:53:11 2014 +0400 inet: allow scope in `uv_inet_pton` ip6 check Note that isn't actually parsing it, since the output value is a `struct in6_addr`. see https://github.com/joyent/node/issues/7395 commit b9d5396a4082b101051ece4f6e3c15a4d5bd7a98 Author: Saúl Ibarra Corretgé Date: Sat Apr 12 10:09:40 2014 +0200 windows: fix console signal handler refcount Backport of 0c726e7 from master commit 6855205ba5c46023cdc2ea53c960bc903f9b0b7a Author: Fedor Indutny Date: Mon Apr 7 15:28:59 2014 +0400 Now working on v0.10.27 Signed-off-by: Fedor Indutny commit d864907611c25ec986c5e77d4d6d6dee88f26926 Author: Fedor Indutny Date: Mon Apr 7 15:26:13 2014 +0400 2014.04.07, Version 0.10.26 (Stable) Changes since version 0.10.25: * process: don't close stdio fds during spawn (Tonis Tiigi) * build, windows: do not fail on Windows SDK Prompt (Marc Schlaich) * build, windows: fix x64 configuration issue (Marc Schlaich) * win: fix buffer leak on error in pipe.c (Fedor Indutny) * kqueue: invalidate fd in uv_fs_event_t (Fedor Indutny) * linux: always deregister closing fds from epoll (Geoffry Song) * error: add ENXIO for O_NONBLOCK FIFO open() (Fedor Indutny) Signed-off-by: Fedor Indutny commit 295882ed3238d6bfda61f5a91e1b43eb210fc485 Author: Fedor Indutny Date: Tue Mar 18 14:32:14 2014 +0400 error: add EMLINK mapping fix joyent/node#7307 commit fd77a5d6c6466f8c9d7ea6221b946599320702bb Author: Tonis Tiigi Date: Sun Mar 23 12:48:06 2014 +0200 process: don't close stdio fds during spawn This is needed when closed stdio fd is reused for uv_spawn pipe. Fixes #1211 commit cd6db8bbefb11a780977052f1a561920d6d60bbe Author: Marc Schlaich Date: Tue Feb 11 13:57:01 2014 +0100 build, windows: do not fail on Windows SDK Prompt Backported from master 2f6d4b4 commit aa2fbb364a2fdd5c90cb9e4ca938787b249ae809 Author: Marc Schlaich Date: Tue Feb 11 14:01:24 2014 +0100 build, windows: fixed x64 configuration issue Backported from master 8010bf9 commit 4ac8c424ea36b069c76e91fde3eb2f42e0e292f9 Author: Fedor Indutny Date: Thu Mar 13 00:48:55 2014 +0400 win: fix buffer leak on error in pipe.c commit 9b38c01b540b60408f8eb1d9c288656405e25f7e Author: Fedor Indutny Date: Tue Mar 11 01:44:44 2014 +0400 kqueue: invalidate fd in uv_fs_event_t Invalidate file descriptor when closing `uv_fs_event_t` handle. Note that `uv__io_stop` is just removing `fd` from `loop->watchers` and not actually invalidating all consequent events in a `kevent()` results. fix joyent/node#1101 commit 84f305915fd45c1e55d261db565b3ddfdbc9d4ce Author: Geoffry Song Date: Wed Feb 5 18:36:24 2014 -0500 linux: always deregister closing fds from epoll If the same file description is open in two different processes, then closing the file descriptor is not sufficient to deregister it from the epoll instance (as described in epoll(7)), resulting in spurious events that cause the event loop to spin repeatedly. So always explicitly deregister it. Fixes #1099. Conflicts: test/test-spawn.c commit 4f72f2145b902fcfefee8fa90419c9bf28d74bc2 Author: Fedor Indutny Date: Thu Mar 6 20:26:11 2014 +0400 error: add ENXIO for O_NONBLOCK FIFO open() When opening FIFO with `O_NONBLOCK` flag, `ENXIO` could be returned if the readable side hasn't yet opened this FIFO. commit c0c9480e02ec36e9b792a12e2f8a162f2bbcab68 Author: Fedor Indutny Date: Wed Feb 26 14:08:19 2014 +0400 process: remove debug perror() prints fix #1128 commit 6f98f4efd112b21414ed92a048cda9f6f5978eb7 Author: Saúl Ibarra Corretgé Date: Tue Feb 25 10:48:26 2014 +0100 unix, windows: map ERANGE errno This is a backport of 2f58bb6 from the master branch commit 10f9120d78fa6351367e52e7fd5f3e8527d54f73 Author: Saúl Ibarra Corretgé Date: Mon Feb 24 12:57:28 2014 +0100 errno: map EFBIG, ENOPROTOOPT and ETXTBSY This is a backport of: https://github.com/joyent/libuv/commit/107be2bed38afa6279aa53b13b946eb60c204969 https://github.com/joyent/libuv/commit/4a023fc0786780d254e1e4a34a983c36f59d99bf https://github.com/joyent/libuv/commit/aaaefe32cadcfb26d07d625d17d7a2b8cafb4f2d commit 714bec14f601fdf0ff4394f7eeb596935f19ca2e Author: Timothy J Fontaine Date: Tue Feb 18 13:01:54 2014 -0800 Now working on v0.10.26 commit d778dc588507588b12b9f9d2905078db542ed751 Author: Timothy J Fontaine Date: Tue Feb 18 13:01:51 2014 -0800 2014.02.19, Version 0.10.25 (Stable) Changes since version 0.10.24: * stream: start thread after assignments (Oguz Bastemur) * unix: correct error when calling uv_shutdown twice (Saúl Ibarra Corretgé) * windows: freeze in uv_tcp_endgame (Alexis Campailla) * sunos: handle rearm errors (Fedor Indutny) commit 703a9e601e976b74ce459e4db9e23fca107d3f4b Author: Fedor Indutny Date: Mon Jan 20 19:12:47 2014 +0400 sunos: handle rearm errors fix #1078 commit 4f913b669adc1765829ce57b8a022394e363a757 Author: Alexis Campailla Date: Tue Feb 18 09:50:49 2014 -0800 windows: freeze in uv_tcp_endgame The event_handle field of unused accept requests was not being initialized properly. As a result, uv_tcp_endgame would try to close an invalid handle and this could lead to unexpected behavior. This fixes node.js test test-cluster-disconnect.js on Windows. commit 6e2021ca111a44449932792e0cb578e63705c2a2 Author: Saúl Ibarra Corretgé Date: Sat Feb 15 16:49:01 2014 +0100 unix: correct error when calling uv_shutdown twice This is a backport of a284b90 for v0.10 branch commit a6ff04d2c48be408cdcd76e5d78f4dc0a8fb9312 Author: Oguz Bastemur Date: Fri Jan 31 12:02:37 2014 +0100 stream: start thread after assignments Changed the order of the member assignments since the thread may start before the parameters are assigned. This especially happens when the osx scheduler is very busy. commit 79ffe2fb9537a8b9f1db7a2f27a7cd5c3bfb3707 Author: Timothy J Fontaine Date: Wed Jan 29 09:41:41 2014 -0800 Now working on v0.10.25 commit aecd296b6bce9b40f06a61c5c94e43d45ac7308a Author: Timothy J Fontaine Date: Wed Jan 29 09:41:36 2014 -0800 2014.01.30, Version 0.10.24 (Stable) Changes since version 0.10.23: * linux: move sscanf() out of the assert() (Trevor Norris) * linux: fix C99/C++ comment (Fedor Indutny) commit 3e2446d18db6ba2c16fa71530565a904aaca1fd2 Author: Fedor Indutny Date: Wed Jan 29 17:01:35 2014 +0400 linux: fix C99/C++ comment commit 7c8ff3bc2578bbba09ef3f460b8d0f1c16bcd03e Author: Trevor Norris Date: Wed Jan 22 12:16:06 2014 -0800 linux: move sscanf() out of the assert() If asserts are turned off then the sscanf() wouldn't have run, being placed directly in the assert() itself. commit b8b6588dbe800df727c5f17b762c9cfe5dcd86be Author: Bert Belder Date: Wed Jan 22 20:30:26 2014 +0100 Now working on v0.10.24 commit dbd218e699fec8be311d85e4788be9e28ae884f8 Author: Bert Belder Date: Wed Jan 22 20:30:14 2014 +0100 2014.01.23, Version 0.10.23 (Stable) Changes since version 0.10.22: * linux: relax assumption on /proc/stat parsing (Luca Bruno) * openbsd: fix obvious bug in uv_cpu_info (Fedor Indutny) * process: close stdio after dup2'ing it (Fedor Indutny) commit e403a2c486f46c0f5eda8814ff13d4ed4521e5a6 Author: Fedor Indutny Date: Mon Jan 20 19:30:08 2014 +0400 process: close stdio after dup2'ing it Thus allow passing the same file descriptor as the source of multiple stdios. Committed with the help and code parts from: * Sam Roberts fix #1074 commit 8bc29b6f5fff71c69987c44e3cfbb3b79b882398 Author: Fedor Indutny Date: Tue Jan 21 15:05:39 2014 +0400 openbsd: fix obvious bug in uv_cpu_info `int which[]` should not be static here, as the function itself is changing it fix joyent/node#6878 commit 993151bc409c273409dbbaaac192091c864f3823 Author: Luca Bruno Date: Mon Jan 20 13:56:26 2014 +0100 linux: relax assumption on /proc/stat parsing CPU entries in /proc/stat are not guaranteed to be monotonically increasing, asserting on this assumption can break in cases such as the UltraSparc II machine shown in #1080. Signed-off-by: Luca Bruno commit 97eda7fd6226be651216ec19ba6146807186bd36 Author: Timothy J Fontaine Date: Tue Jan 7 14:03:18 2014 -0800 Now working on v0.10.23 commit f526c90eeff271d9323a9107b9a64a4671fd3103 Author: Timothy J Fontaine Date: Tue Jan 7 14:03:15 2014 -0800 2014.01.08, Version 0.10.22 (Stable) Changes since version 0.10.21: * windows: avoid assertion failure when pipe server is closed (Bert Belder) commit f6422af80ab54eddf5f1344bec7ddab9ab240924 Author: Alex Crichton Date: Sat Dec 21 20:12:35 2013 -0800 osx: Fix a possible segfault in uv__io_poll In our build infrastructure, I've seen a lot of segfaults recently that were all only happening on OSX. Upon inspecting the coredumps, it appearded that all segfaults happened at the same instruction, and upon translating the assembly back to the source, I found that an array could be indexed with a -1 index before the index was checked to be not -1. As concrete evidence, here is the situation that I found caused the segfault. The instruction in question along with the relevant register values was: mov (%r8,%r15,8),%r12 r8 = 0x7fb0ba800000 r15 = 0xffffffffffffffff r8 + r15 * 8 == 0x7fb0ba7ffff8 It appears that the base of loop->watchers was page aligned, and by going back one word I guess that the page wasn't mapped, causing our segfaults. commit 16c4b21e4dad4624a5a4c23f8e1cff6da0b1ba1c Author: Bert Belder Date: Sat Dec 21 11:32:22 2013 +0100 test: make test-pipe-server-close pass on linux When a server and a client are both part of the same event loop, and the client connects to the server, the order in which the connect callback and the connection callback are called is unspecified. Apparently on linux the connection callback sometimes happens first, which is not a bug, and should not make this test fail. commit c66340d59b8b35399831fb1c3a12c1efdbd91a53 Author: Bert Belder Date: Fri Dec 20 19:40:02 2013 -0800 test: add pipe-server-close test Add a regression test for the pipe server close issue on Windows, which was reported in joyent/node#6749 and fixed in 7b16a3f. commit 562d7a49ac206dab2a830aad612d995a8c6fbd97 Author: Bert Belder Date: Fri Dec 20 19:38:37 2013 -0800 code style: strip trailing whitespace commit 7b16a3f5083ef742384e7511914764c56778da8e Author: Bert Belder Date: Fri Dec 20 17:33:31 2013 -0800 windows: avoid assertion failure when pipe server is closed When a pipe server is closed, all pending accept requests and their associated HANDLEs are closed to force windows to cancel the ConnectNamedPipe IRP. The returned request has the `pipeHandle` field set to INVALID_HANDLE_VALUE, which trips an assert in uv_pipe_process_accept_req. This patch fixes that. commit 9d60214b3aa837e3930e078983245f1e73cfbb39 Author: Timothy J Fontaine Date: Wed Dec 18 15:37:33 2013 -0800 Now working on v0.10.22 commit 375ebce068555f0ca8151b562edb5f1b263022db Author: Timothy J Fontaine Date: Wed Dec 18 15:37:25 2013 -0800 2013.12.19, Version 0.10.21 (Stable) Changes since version 0.10.20: * unix: fix a possible memory leak in uv_fs_readdir (Alex Crichton) commit 7c6bddbe2a697344f441574d61a74a8034d86109 Author: Alex Crichton Date: Tue Dec 17 13:03:52 2013 -0800 unix: fix a possible memory leak in uv_fs_readdir Some scandir implementations allocate the dirent struct even if the directory is empty, so if `scandir` returns 0 there may still be memory that needs to get deallocated. I have altered uv__fs_readdir to go to the "deallocation exit area" when 0 files are found in the directory and continue to return early on a return value of -1. I went to add a test for this functionality, but it appears that one already exists (reading an empty directory), so I imagine that the valgrind builds must only be happening on linux instead of OSX as well? I have confirmed manually that a program without this fix will infinitely leak memory, and with this fix the memory usage stays constant. commit f3d311edc447cfe0a95c6ca7cbe8301588f180c5 Author: Timothy J Fontaine Date: Wed Dec 11 20:22:00 2013 -0800 Now working on v0.10.21 commit 04141464dd0fba90ace9aa6f7003ce139b888a40 Author: Timothy J Fontaine Date: Wed Dec 11 20:21:57 2013 -0800 2013.12.13, Version 0.10.20 (Stable) Changes since version 0.10.19: * linux: fix up SO_REUSEPORT back-port (Ben Noordhuis) * fs-event: fix invalid memory access (huxingyi) commit da323447308280c736ac44946fce752a5dca8243 Author: huxingyi Date: Thu Oct 24 16:10:44 2013 +0800 fs-event: fix invalid memory access file_info->FileName is not null terminated. commit 47d98b64c45db8335bf7e065351e385cae32323d Author: Alex Gaynor Date: Fri Nov 29 11:07:43 2013 -0600 doc: Removed use of gendered pronouns commit 7bb7371fc5ad7cdabcf997e5002d5fe8f5e47abd Author: Ben Noordhuis Date: Wed Nov 27 17:28:02 2013 +0100 build: make `./gyp_uv.py -f eclipse` work The eclipse backend (like the ninja backend) does not support the --generator_output switch. commit 74457d08ba6408d1ce5ff965b113f237c0cf6e51 Author: Ben Noordhuis Date: Mon Nov 25 16:09:55 2013 +0100 linux: fix up SO_REUSEPORT back-port Commit 3d2c820 back-ports a patch from the master branch that disables the use of SO_REUSEPORT on Linux for reasons mentioned in the commit log. Unfortunately, the back-port was incomplete; another setsockopt() call site in src/unix/udp.c was overlooked. This commit rectifies that. Hat tip to Luca Bruno for helping troubleshoot the issue. commit c3e05bafa5486120117994d11f38172d3752127d Author: Marc Schlaich Date: Mon Nov 25 16:19:42 2013 +0100 gitignore: ignore *.pyc files The gyp build on Windows produces a *.pyc file as of commit 991409e. commit a43537eeada0aa95a0df02da23e9169b981654ba Author: Ben Noordhuis Date: Mon Nov 25 12:58:17 2013 +0100 test: back-port EMFILE test from master branch Back-port the test from commit 27795cf from the master branch ("unix: fix accept() EMFILE error handling"). commit 026241ca67717679a7f79d92c4fe1d77f223318c Author: Ben Noordhuis Date: Wed Nov 13 12:20:07 2013 +0100 unix: unbreak bsd build after bbccafb Unbreak the build on the BSDs after commit bbccafb. Move the new uv__platform_invalidate_fd() function from src/unix/darwin.c to src/unix/kqueue.c. commit 1578a5a371326bd1edabfa146c77d41d4e20928e Author: Timothy J Fontaine Date: Tue Nov 12 10:54:29 2013 -0800 Now working on v0.10.20 commit 33959f7524090b8d2c6c41e2400ca77e31755059 Author: Timothy J Fontaine Date: Tue Nov 12 10:54:25 2013 -0800 2013.11.13, Version 0.10.19 (Stable) Changes since version 0.10.18: * darwin: avoid calling GetCurrentProcess (Fedor Indutny) * unix: update events from pevents between polls (Fedor Indutny) * fsevents: support japaneese characters in path (Chris Bank) * linux: don't turn on SO_REUSEPORT socket option (Ben Noordhuis) * build: fix windows smp build with gyp (Geert Jansen) * linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT (Ben Noordhuis) * unix: fix reopened fd bug (Fedor Indutny) * core: fix fake watcher list and count preservation (Fedor Indutny) commit f50ccd52388ffbcbbf0cd21ef7d6562300ef7ebb Author: Fedor Indutny Date: Tue Nov 12 15:24:33 2013 +0400 core: fix fake watcher list and count preservation Fake watcher list and count should be preserved only if `loop->watchers` was already allocated. commit bbccafbe704090e294481d95f73862bc83f33026 Author: Fedor Indutny Date: Fri Oct 25 12:56:37 2013 +0400 unix: fix reopened fd bug When fd is closed and new one (with the same number) is opened inside kqueue/epoll/port loop's callback - stale events might invoke callbacks on wrong watchers. Check if watcher was changed after invocation and invalidate all events with the same fd. fix #826 commit 0c76cdb98ffa9a43f169e24b59a3df95f18803f3 Author: Ben Noordhuis Date: Fri Nov 8 05:10:44 2013 +0100 linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT Work around an epoll quirk where it sometimes reports just the EPOLLERR or EPOLLHUP event. In order to force the event loop to move forward, we merge in the read/write events that the watcher is interested in; uv__read() and uv__write() will then deal with the error or hangup in the usual fashion. Fixes #982. This is a back-port of commit 24bfef2 from the master branch. commit 991409e461e3973f006bf951b3e7513578a41be2 Author: Geert Jansen Date: Tue Nov 5 08:43:40 2013 +0100 build: fix windows smp build with gyp Gyp will try a parallel build if it detect the system has >1 processor. This functionality depends on the Python "multiprocessing" package. The multiprocessing package on Windows requires that the top-level module is importable as a module, see: http://docs.python.org/2/library/multiprocessing.html#windows This fixes issue #984. This is a back-port of commit 2445467 from the master branch. commit 3d2c820a4efe3954a77b539bb56e7398263069d3 Author: Ben Noordhuis Date: Wed Oct 30 09:36:47 2013 +0100 linux: don't turn on SO_REUSEPORT socket option On the BSDs, SO_REUSEPORT is pretty much SO_REUSEADDR with some special casing for IP multicast. When two processes (that don't do multicast) bind to the same address, only the last one receives traffic. It allows one to "steal" the bound address from another process. (Both processes have to enable SO_REUSEPORT though, so it only works in a cooperative setting.) On Linux however, it enables port sharing, not stealing - both processes receive a share of the traffic. This is a desirable trait but pre-3.9 kernels don't support the socket option and a libuv program therefore behaves differently with older kernels or on another platform. This is a back-port of commit 9d60f1e from the master branch. Fixes joyent/node#6454. commit 3780e128230618bc3bddc9b3942ee149fadf4ca2 Author: Chris Bank Date: Sat Nov 2 05:00:50 2013 +0400 fsevents: support japaneese characters in path commit f9960184fd86d43470dc70dcedac32899e532757 Author: Fedor Indutny Date: Wed Oct 30 21:43:23 2013 +0400 test: add regression test for 29fdb3471 commit 29fdb3471ba993a4d129278129ec04e720890063 Author: Fedor Indutny Date: Sat Oct 26 01:06:12 2013 +0400 unix: update events from pevents between polls Watchers could be stopped between two `kevent()`/`epoll_wait()` calls (which may happen in the same loop in `uv__io_poll()`), in such cases `watcher->events` could be stale and won't be updated to `watcher->pevents`. Try to use and rely on `watcher->pevents` instead of blindly expecting `watcher->events` to be always correct. commit 08e0e63f3adecafeacaf09f519587c381c6e2ef2 Author: Fedor Indutny Date: Mon Oct 28 20:51:50 2013 +0400 darwin: avoid calling GetCurrentProcess Use some black-magic from Apple to change process name without getting a "Not responding" tag from Activity Manager. fix #966 commit 939560b6dbbb52252a3d510731431c7c9e03750c Author: Timothy J Fontaine Date: Fri Oct 18 13:17:52 2013 -0700 Now working on v0.10.19 commit 9ec52963b585e822e87bdc5de28d6143aff0d2e5 Author: Timothy J Fontaine Date: Fri Oct 18 13:17:48 2013 -0700 2013.10.19, Version 0.10.18 (Stable) Changes since version 0.10.17: * unix: fix uv_spawn() NULL pointer deref on ENOMEM (Ben Noordhuis) * unix: don't close inherited fds on uv_spawn() fail (Ben Noordhuis) * unix: revert recent FSEvent changes (Ben Noordhuis) * unix: fix non-synchronized access in signal.c (Ben Noordhuis) commit 1800efc13806440867b92758d01f0ce97e239e36 Author: Ben Noordhuis Date: Fri Oct 18 17:10:03 2013 +0200 unix: fix non-synchronized access in signal.c Check the return value of uv__signal_lock(); don't mutate the signal watcher tree in the signal handler if we failed to acquire the lock. commit 38df93cfed1921b4682179c04c298be1b69e6841 Author: Ben Noordhuis Date: Sat Oct 5 18:15:02 2013 +0200 unix: revert recent FSEvent changes This commit reverts the following commits: 983fa68 darwin: fix 10.6 build error in fsevents.c 684e212 fsevents: use shared FSEventStream ea4cb77 fsevents: FSEvents is most likely not thread-safe 9bae606 darwin: create fsevents thread on demand Several people have reported stability issues on OS X 10.8 and bus errors on the 10.9 developer preview. See also joyent/node#6296 and joyent/node#6251. commit 11d80117936bea8da25d28bcf5402615dd3ead05 Author: Ben Noordhuis Date: Wed Oct 2 11:17:18 2013 +0200 unix: don't close inherited fds on uv_spawn() fail The cleanup-after-error code path in uv_spawn() was closing file descriptors indiscriminately. Only close file descriptors that we created ourselves, not the ones that are passed in by the user. Fixes joyent/node#6297. commit fc3a21f943d5c91cd27fd7df9a973546101fef22 Author: Ben Noordhuis Date: Wed Oct 2 10:53:53 2013 +0200 unix: fix uv_spawn() NULL pointer deref on ENOMEM In the cleanup-after-error section of uv_spawn(), check that the pointer is non-NULL - we might end up in said section due to a malloc() failure. commit 8c9cbee1b1fb19786405bdd92af5edfdab4cdbbe Author: Ben Noordhuis Date: Sat Sep 28 20:50:45 2013 +0200 Revert "unix: set O_NONBLOCK in uv_pipe_open()" It turns out that node.js relies on the blocking behavior of pipes in some cases, notably when forking worker processes. Reopens #941. This reverts commit 8fe4ca686bcb069f670b0381e89c008ca814f8ba. commit 8fe4ca686bcb069f670b0381e89c008ca814f8ba Author: Ben Noordhuis Date: Sat Sep 28 10:29:53 2013 +0200 unix: set O_NONBLOCK in uv_pipe_open() Don't rely on the caller to set the O_NONBLOCK flag on the file descriptor. Prevents sporadic stalls when the file descriptor is in blocking mode and exactly as many bytes are read as there are available; in that case, libuv will try to read again and block. Node.js was guilty of this. Fixes #941. commit e9df7cbcbbcf8972aaf4ae64174a37c46dd62eb2 Author: Timothy J Fontaine Date: Tue Sep 24 13:40:44 2013 -0700 Now working on v0.10.18 commit 9670e0a93540c2f0d86c84a375f2303383c11e7e Author: Timothy J Fontaine Date: Tue Sep 24 13:40:40 2013 -0700 2013.09.25, Version 0.10.17 (Stable) Changes since version 0.10.16: * build: remove GCC_WARN_ABOUT_MISSING_NEWLINE (Ben Noordhuis) * darwin: fix 10.6 build error in fsevents.c (Ben Noordhuis) commit 983fa68e9f8bdf77a94fc46526a798a350ec39ec Author: Ben Noordhuis Date: Wed Aug 28 11:55:27 2013 +0200 darwin: fix 10.6 build error in fsevents.c Work around an 'initializer element is not constant' build error in src/unix/fsevents.c by turning the const int flags into #defines. Only an issue on OS X 10.6 due to the old compiler it uses. Fixes #908. This is a back-port of commit 82f2472 from the master branch. commit 712835a6733b578d6e8c1bccdfa7febc6454d3b8 Author: Ben Noordhuis Date: Thu Sep 5 21:32:41 2013 +0200 build: remove GCC_WARN_ABOUT_MISSING_NEWLINE Not compatible with non-Apple gcc builds. Fixes the following build error: gcc-4.8: error: unrecognized command line option '-Wnewline-eof' commit 7e5c63c88da5b88f39ea1ec3d6b049438da91bde Author: Bert Belder Date: Thu Sep 5 16:45:51 2013 +0200 Now working on v0.10.17 commit 2bce230d81f4853a23662cbeb26fe98010b1084b Author: Bert Belder Date: Thu Sep 5 16:45:45 2013 +0200 2013.09.06, Version 0.10.16 (Stable) Changes since version 0.10.15: * windows: make uv_shutdown() for write-only pipes work (Bert Belder) * windows: make uv_fs_open() report EINVAL when invalid arguments are passed (Bert Belder) * windows: make uv_fs_open() report _open_osfhandle() failure correctly (Bert Belder) * windows: make uv_fs_chmod() report errors correctly (Bert Belder) * windows: wrap multi-statement macros in do..while block (Bert Belder) commit faf2c5932c89a714fcd6b9668a9b78a986d20701 Author: Bert Belder Date: Thu Sep 5 08:50:04 2013 +0200 windows/fs: handle _open_osfhandle() failure correctly Until now we assumed that _open_osfhandle() would set _doserrno on failure. This assumption was very wrong in one obvious case, namely when the CRT file descriptor table would fill up. In that case errno is set to EMFILE, but GetLastError() returns zero - which makes sense because it's not a win32 error but rather a CRT problem. commit 812717d0dda831594f91126272b7f5b3e323e184 Author: Bert Belder Date: Thu Sep 5 08:46:16 2013 +0200 windows/fs: make uv_fs_open() report EINVAL correctly Before, when the user passed an invalid paramter to uv_fs_open, libuv would detect this and call SET_REQ_RESULT to set the result value to -1. SET_REQ_RESULT then stored whatever error code was returned by GetLastError(), which would have no relationship to the actual problem, and might as well be zero. commit 39bef32906573a0dd645cd12c510693dbabf76cf Author: Bert Belder Date: Thu Sep 5 08:38:07 2013 +0200 windows/fs: wrap multi-statement macros in do..while block commit 61b20e8d469eb82292ef4ca885d824f429fe4b2a Author: Bert Belder Date: Thu Aug 29 15:04:27 2013 +0200 windows: make uv_shutdown() for write-only pipes work A couple of issues prevented uv_shutdown() from working correctly with write-only pipes. * The pipe handle wasn't opened with the right permissions, so an attempt to probe the state of the write buffer would fail with ERROR_ACCESS_DENIED. * The pipe flags for child process stdio pipes were always set to UV_HANDLE_READABLE and UV_HANDLE_WRITABLE, even in cases where it was actually half-duplex. * There was no code path that lead to closing the pipe handle if the pipe was write-only. commit 851a6624161219c0a18be8b5c9fc4e55d24f53c4 Author: Bert Belder Date: Sat Aug 24 15:40:53 2013 +0200 windows: make uv_fs_chmod() report errors correctly Before this patch libuv would attempt to use GetLastError() to retrieve the cause of NtQueryInformationFile failure, but that's not how it should be done. commit c8b6895eaffa26c66d2af2b573687ca7d061f26a Author: Bert Belder Date: Fri Aug 23 18:57:14 2013 +0200 Now working on v0.10.16 commit 221078a8fdd9b853c6b557b3d9a5dd744b4fdd6b Author: Bert Belder Date: Fri Aug 23 18:57:10 2013 +0200 2013.08.24, Version 0.10.15 (Stable) Changes since version 0.10.14: * fsevents: create FSEvents thread on demand (Ben Noordhuis) * fsevents: use a single thread for interacting with FSEvents, because it's not thread-safe. (Fedor Indutny) * fsevents: share FSEventStream between multiple FS watchers, which removes a limit on the maximum number of file watchers that can be created on OS X. (Fedor Indutny) commit 684e2124e7cbe8f94daeba730e83cbf88963430f Author: Fedor Indutny Date: Wed Aug 21 01:43:09 2013 +0400 fsevents: use shared FSEventStream It seems that number of simultaneously opened FSEventStreams is limited on OSX (i.e. you can have only fixed number of them on one running system), getting past through this limit will cause `FSEventStreamCreate` to return false and write following message to stderr: (CarbonCore.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21) To prevent this, we must use only one shared FSEventStream with a paths for all uv_fsevent_t handles, and then filter out events for each handle using this paths again. See https://github.com/joyent/node/issues/5463 Conflicts: include/uv-private/uv-darwin.h src/unix/fsevents.c commit ea4cb77814eeaa7629b29d53ad6a2b8bc4b19046 Author: Fedor Indutny Date: Wed Aug 14 17:14:35 2013 +0400 fsevents: FSEvents is most likely not thread-safe Perform all operation with FSEventStream in the same thread, where it'll be used. Conflicts: src/unix/fsevents.c commit 9bae606d413327187828155b61babcd52b2d2517 Author: Ben Noordhuis Date: Tue Aug 13 02:02:12 2013 +0200 darwin: create fsevents thread on demand * Move CF run loop code to fsevents.c. * Create the fsevents thread on demand rather than at startup. * Remove use of ACCESS_ONCE. All accesses to loop->cf_loop are protected by full memory barriers so no reordering can take place. Fixes #872. Conflicts: src/unix/darwin.c commit 24a42a406ae00c2e8060b9f9397365684669db6b Author: Timothy J Fontaine Date: Wed Aug 21 14:41:26 2013 -0700 Now working on v0.10.15 commit 15d64132151c18b26346afa892444b95e2addad0 Author: Timothy J Fontaine Date: Wed Aug 21 14:41:23 2013 -0700 2013.08.22, Version 0.10.14 (Stable) Changes since version 0.10.13: * unix: retry waitpid() on EINTR (Ben Noordhuis) commit b2ac4d3bf41bafc1c327b9fa929eee37f05492e8 Author: Ben Noordhuis Date: Sun Aug 18 17:25:05 2013 +0200 unix: retry waitpid() on EINTR Before this commit, libuv would abort() if waitpid() failed with EINTR. It's unlikely that anyone actually hit this error condition: the major UNIX platforms - with the possible exception of Solaris - don't return EINTR when the WNOHANG flag is specified, as libuv does. However, POSIX allows for an implementation to do whatever here: unless explicitly forbidden, it's allowed and POSIX doesn't restrict implementers in this particular area. Let's opt for robustness and handle EINTR. commit d84acc65a7e48f41e2bc2fea38ed473e4a051d18 Merge: 47fd23f 381312e Author: Joe Cheng Date: Mon Aug 12 09:46:05 2013 -0700 Merge tag 'v0.10.13' 2013.07.26, Version 0.10.13 (Stable) Changes since version 0.10.12: * unix, windows: fix uv_fs_chown() function prototype (Ben Noordhuis) commit 2744e1e009fce04e883f7641009b4bbb4c78a8f0 Author: Timothy J Fontaine Date: Thu Jul 25 10:34:41 2013 -0700 Now working on v0.10.14 commit 381312e1fe6fecbabc943ccd56f0e7d114b3d064 Author: Timothy J Fontaine Date: Thu Jul 25 10:31:28 2013 -0700 2013.07.26, Version 0.10.13 (Stable) Changes since version 0.10.12: * unix, windows: fix uv_fs_chown() function prototype (Ben Noordhuis) commit d779eb53d506d40fbe7903da7b914a5bbd588954 Author: Ben Noordhuis Date: Tue Jul 23 13:14:44 2013 +0200 unix, windows: fix uv_fs_chown() function prototype Before this commit, uv_fs_chown() and uv_fs_fchown() took the uid and gid as signed integers which is wrong because uid_t and gid_t are unsigned on most all platforms and IDs that don't fit in a signed integer do exist. This is not an ABI change because the size of the uid and gid arguments do not change, only their sign. On Windows, uv_uid_t and uv_gid_t are typedef'd as unsigned char for reasons that are unclear. It doesn't matter: they get cast to ints when used as function arguments. The arguments themselves are unused. Partial fix for joyent/node#5890. commit 3b4e0a216fb4093fa9f6e5d3c9039b5f1d30820b Author: isaacs Date: Tue Jul 9 13:18:53 2013 -0700 Now working on v0.10.13 commit 58a46221bba726746887a661a9f36fe9ff204209 Author: isaacs Date: Tue Jul 9 13:18:50 2013 -0700 2013.07.10, Version 0.10.12 (Stable) Changes since version 0.10.11: * linux: add support for MIPS (Andrei Sedoi) * windows: uv_spawn shouldn't reject reparse points (Bert Belder) * windows: use WSAGetLastError(), not errno (Ben Noordhuis) * build: darwin: disable -fstrict-aliasing warnings (Ben Noordhuis) * build: `all` now builds static and dynamic lib (Ben Noordhuis) * unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK) (Ben Noordhuis) commit 37d0209c8911c80115bb0c58b248c7e10bb541a9 Author: Ben Noordhuis Date: Fri Jul 5 12:04:43 2013 +0200 unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK) Ancient versions of glibc (<= 2.3.1) don't have error-checking mutexes. commit 88a2c7ff209935d736f02e79b3369f2e7b646bb8 Author: Ben Noordhuis Date: Wed Jun 26 17:13:26 2013 +0200 build: `all` now builds static and dynamic lib The `make all` target now builds both libuv.a and libuv.{so,dylib} rather than just libuv.a. commit 5841852703c02e46d7220f1eb8d89bb8414d7cf3 Author: Ben Noordhuis Date: Wed Jun 26 13:02:39 2013 +0200 test: add 'start timer from check handle' test Check that a timer that is started from a check handle gets picked up correctly, i.e. that it influences the timeout used in the next tick of the event loop. commit 488b43ecc5a79143d0697e5e49d834c86c7c9894 Author: Ben Noordhuis Date: Wed Jun 26 13:26:45 2013 +0200 test: fix signed/unsigned compiler warning commit a0bc4cca74be7de2a540439920c8f15d0a671b74 Author: Ben Noordhuis Date: Wed Jun 26 13:06:26 2013 +0200 build: darwin: disable -fstrict-aliasing warnings gcc 4.2.1 as shipped with Xcode complains incessantly about aliasing warnings, which, while technically true, disregards the fact that the aliased types have the same layout in memory. Squelch the warnings. commit c8c775bd9739e0c9562b925ec482a378b50f97c2 Author: Ben Noordhuis Date: Wed Jun 26 01:03:36 2013 +0200 windows: use WSAGetLastError(), not errno setsockopt() doesn't touch errno on failure. Use WSAGetLastError() instead. This is a back-port of commit 30a8b44 from the master branch. commit 495d1a09fb863354e5de1c6ab4547be3672ace00 Author: Bert Belder Date: Wed Jun 19 00:14:58 2013 +0200 windows: uv_spawn shouldn't reject reparse points This fixes an issue where uv_spawn would not try to run a reparse point, and continue to scan the PATH instead. Effectively, it was impossible to spawn a symlinked binary. This commit fixes that. Also see #748 commit 6607e702539f0affa2d1b2926d4e69a1e032c242 Author: Ben Noordhuis Date: Tue Jun 18 23:50:31 2013 +0200 test: open stdout fd in write-only mode Fixes #771. commit 5096f1e0961896998c4185db866c53a8a8636fab Author: Andrei Sedoi Date: Thu Jun 13 23:23:42 2013 +0300 linux: add support for MIPS commit 72e440d7e193123c0359fa12a7fabab15d7d9f51 Author: Ben Noordhuis Date: Wed Jun 12 21:52:05 2013 +0200 Now working on v0.10.12 commit c3b75406a66a10222a589cb173e8f469e9665c7e Author: Ben Noordhuis Date: Wed Jun 12 21:52:01 2013 +0200 2013.06.13, Version 0.10.11 (Stable) Changes since version 0.10.10: * unix: unconditionally stop handle on close (Ben Noordhuis) * freebsd: don't enable dtrace if it's not available (Brian White) * build: make HAVE_DTRACE=0 should disable dtrace (Timothy J. Fontaine) * unix: remove overzealous assert (Ben Noordhuis) * unix: clear UV_STREAM_SHUTTING after shutdown() (Ben Noordhuis) * unix: fix busy loop, write if POLLERR or POLLHUP (Ben Noordhuis) commit 12210fe578623995d13cc5126427c1c67de4b6e0 Author: Ben Noordhuis Date: Sat Jun 8 03:20:29 2013 +0200 unix: fix busy loop, write if POLLERR or POLLHUP This fixes a busy loop by working around a quirk with Linux kernels <= 2.6.32 where an EPIPE or ECONNRESET error on a file descriptor that is polled for EPOLLOUT but not EPOLLIN gets reported by epoll_wait() as just EPOLLERR|EPOLLHUP, like this: epoll_wait(5, {{EPOLLERR|EPOLLHUP, {u32=12, u64=12}}}, 1024, 433) = 1 Before this commit, libuv called uv__read() which attempts to read from the file descriptor. With newer kernels and on other operating systems that fails like this: read(12, "", 65536) = -1 EPIPE (Broken pipe) Which tells libuv there is a connection error and it should notify the user of that. On the affected Linux kernels however, the read succeeds with an EOF: read(12, "", 65536) = 0 Which is subsequently passed on to the user. In most cases, the user will close the handle and everything is fine. Node.js however sometimes keeps the handle open in an attempt to flush pending write requests. While libuv doesn't officially support this, unofficially it works... ...except on those older kernels. Because the kernel keeps waking up the event loop without setting POLLOUT and because the read calls EOF but don't error, libuv's I/O state machine doesn't progress. That's why this commit changes uv__stream_io() to also write pending data. While the read() system call doesn't error, the write() system call will. Fixes joyent/node#5504. commit 536c5f8661af4b57f8cc8be43bf482ae27a9fcd8 Author: Ben Noordhuis Date: Sat Jun 8 03:14:32 2013 +0200 unix: clear UV_STREAM_SHUTTING after shutdown() Fix a state machine buglet where the UV_STREAM_SHUTTING flag didn't get cleared. commit 3ab354367b2ff16a5ade1b585fdf7e10599084d3 Author: Ben Noordhuis Date: Fri Jun 7 11:28:31 2013 +0200 unix: remove overzealous assert Several node.js users are hitting this assert under what appear to be mostly benign conditions. In other words, it's unclear whether it's catching real bugs or just has wrong expectations. An aborting process is rather disruptive so I'm removing the assert from the stable branch and relanding it in the master branch. commit f84becc64ea3f4653a2ee95319dab0aeee7c4044 Author: Timothy J Fontaine Date: Thu Jun 6 10:48:24 2013 -0700 build: make HAVE_DTRACE=0 should disable dtrace commit c8ffee3460a1b507bbc7f5f83e4e09e4a769db76 Author: Brian White Date: Fri May 31 18:37:45 2013 -0400 freebsd: don't enable dtrace if it's not available commit 8e4b248ca6cf66367476624899442974d17092f0 Author: Ben Noordhuis Date: Wed Jun 5 15:01:34 2013 +0200 unix: unconditionally stop handle on close Make sure the handle is fully stopped by the time uv__stream_close() calls uv_read_stop(). Fixes the following assertion: Assertion failed: (!uv__io_active(&stream->io_watcher, UV__POLLOUT) || !ngx_queue_empty(&stream->write_completed_queue) || !ngx_queue_empty(&stream->write_queue) || stream->shutdown_req != NULL || stream->connect_req != NULL), function uv_read_stop, file ../deps/uv/src/unix/stream.c, line 1329. Fixes joyent/node#5622. commit e9ae62d13a38b89fee60ed502307530bc2b8f520 Author: isaacs Date: Tue Jun 4 12:00:31 2013 -0700 Now working on v0.10.11 commit 0d95a88bd35fce93863c57a460be613aea34d2c5 Author: isaacs Date: Tue Jun 4 12:00:29 2013 -0700 2013.06.05, Version 0.10.10 (Stable) Changes since version 0.10.9: * include: document uv_update_time() and uv_now() (Ben Noordhuis) * linux: fix cpu model parsing on newer arm kernels (Ben Noordhuis) * linux: fix memory leak in uv_cpu_info() error path (Ben Noordhuis) * linux: don't ignore OOM errors in uv_cpu_info() (Ben Noordhuis) * unix, windows: move uv_now() to uv-common.c (Ben Noordhuis) * darwin: make uv_fs_sendfile() respect length param (Wynn Wilkes) commit b9eb402fb047b9c10c9395ea555d22bc869a5901 Author: Bert Belder Date: Thu May 30 22:54:44 2013 +0200 include: remove lame comment from uv.h commit b4c658c3c0e650590cc0496833fead4f29deea75 Author: Wynn Wilkes Date: Wed May 29 12:13:34 2013 -0600 darwin: make uv_fs_sendfile() respect length param The darwin sendfile implementation uses the &len parameter as input and output. The code was sending 0 (not using the value of req->len) so the behavior wasn't what the caller was expecting. This makes sure to initialize len with req->len to ensure that the caller can send portions of a file (not always everything to the end of the file). commit 081f7018ecc1c66a76f76c4b5cacb327820674b9 Author: Bert Belder Date: Wed May 29 18:32:25 2013 +0300 test: use c-style comments Fixes a compilation problem on OS X caused by the use of c++-style comments in test-osx-select.c. commit e0bdb3dbc916d8311538de2b783c53e9739bf652 Author: Ben Noordhuis Date: Wed May 29 16:13:34 2013 +0200 unix, windows: move uv_now() to uv-common.c commit b93cf8b594b5eaf4617174e674961fd3db3fb0c6 Author: Ben Noordhuis Date: Wed May 29 01:37:36 2013 +0200 linux: don't ignore OOM errors in uv_cpu_info() commit 31282a97e70b24df7ebe4692967fee2a48aa2096 Author: Ben Noordhuis Date: Wed May 29 01:25:37 2013 +0200 linux: fix memory leak in uv_cpu_info() error path Any memory allocated to hold CPU model strings wasn't freed on error. commit 92c72f58bf59ee51a1680dd52b0e91a0ccae485d Author: Ben Noordhuis Date: Wed May 29 00:24:02 2013 +0200 linux: fix cpu model parsing on newer arm kernels The format of /proc/cpuinfo on ARM kernels >= 3.8 has changed. Scan for the string "model name" (like x86) first, "Processor" second. Fixes #812. commit dfff2e9e2336ac7b89234c3f7744a73fc6560bb1 Author: Ben Noordhuis Date: Tue May 28 23:20:35 2013 +0200 include: document uv_update_time() and uv_now() commit 21c12b824a07be22a24547904b50ff022db11dd7 Author: isaacs Date: Tue May 28 12:08:49 2013 -0700 Now working on v0.10.10 commit a195f9ace23d92345baf57582678bfc3017e6632 Author: isaacs Date: Tue May 28 12:08:46 2013 -0700 2013.05.29, Version 0.10.9 (Stable) Changes since version 0.10.8: * unix: fix stream refcounting buglet (Ben Noordhuis) * unix: remove erroneous asserts (Ben Noordhuis) * unix: add uv__is_closing() macro (Ben Noordhuis) * unix: stop stream POLLOUT watcher on write error (Ben Noordhuis) commit b329d51ef4ce32f34c21a016a7c311ddeb077878 Author: Ben Noordhuis Date: Sun May 26 23:44:55 2013 +0200 unix: stop stream POLLOUT watcher on write error The node.js test suite sometimes hits the assert that was added in commit 4146805 that checks if there are connect, write or shutdown requests pending when the user calls uv_read_stop() while the stream is primed for writing. The libuv user (i.e. node.js) is supposed to close the stream on error. Because uv__stream_close() calls uv_read_stop(), it's possible that the POLLOUT watcher is still active. commit 8e16f8e0564a7b853c2cb0f92572e7959c6cadae Author: Ben Noordhuis Date: Sun May 26 23:02:17 2013 +0200 unix: add uv__is_closing() macro commit b38c9c1004993ca4f642629f5af1b7b09bbc6887 Author: Ben Noordhuis Date: Sat May 25 02:36:45 2013 +0200 unix: remove erroneous asserts As of commit c53fe81, it's legal for write_queue_size > 0 when the write_queue itself is empty. Sounds illogical but it means there are error-state write requests in the write_completed_queue that will touch up the write_queue_size on the next tick of the event loop. Remove a few stray asserts that still checked for the old situation. commit 636a13b8c46c52413e1da1795a952bfc738f3c55 Author: Ben Noordhuis Date: Thu May 23 07:16:00 2013 +0200 unix: fix stream refcounting buglet Fix a buglet where uv_read_stop() would mark the handle as stopped even when there are in-progress write requests. This bug is unlikely to have affected anyone, the only case where it has a user-visible effect is when: a) the handle has been stopped for reading but not writing, and b) it's the last active handle in the event loop's pollset If both conditions are met, it's possible for the event loop to terminate prematurely. This reapplies commit 80f2f82 which was temporarily reverted in fe7b154 because it was making a lot of node.js tests fail on OS X with the following assertion: Assertion failed: (!uv__is_active(handle)), function uv__finish_close, file ../../deps/uv/src/unix/core.c, line 165. Expecting that the handle is inactive when the state is UV_CLOSING turns out to be a bad assumption: it's possible that the handle is executing (for example) a shutdown request when uv__finish_close() is called. That's okay, uv__stream_destroy() takes care of that. The issue wasn't specific to OS X, it was just more visible on that platform. (Slow) debug builds on Linux exhibited the same behavior. commit 7d5024e7e6564c36b99af39db075b0c9d75797f9 Author: isaacs Date: Fri May 24 14:37:56 2013 -0700 Now working on v0.10.9 commit 0f39be12926fe2d8766a9f025797a473003e6504 Author: isaacs Date: Fri May 24 14:37:53 2013 -0700 2013.05.25, Version 0.10.8 (Stable) Changes since version 0.10.7: * windows: make uv_spawn not fail under job control (Bert Belder) * darwin: assume CFRunLoopStop() isn't thread-safe (Fedor Indutny) * win: fix UV_EALREADY incorrectly set (Bert Belder) * darwin: make two uv__cf_*() functions static (Ben Noordhuis) * darwin: task_info() cannot fail (Ben Noordhuis) * unix: add mapping for ENETDOWN (Ben Noordhuis) * unix: implicitly signal write errors to libuv user (Ben Noordhuis) * unix: fix assert on signal pipe overflow (Bert Belder) * unix: turn off POLLOUT after stream connect (Ben Noordhuis) commit fe7b154476145ebc69ab70d3ca1d195116a00065 Author: Ben Noordhuis Date: Fri May 24 21:23:09 2013 +0200 Revert "unix: fix stream refcounting buglet" This change is making 45 out of 527 node.js tests fail on OS X with the following assertion: Assertion failed: (!uv__is_active(handle)), function uv__finish_close, file ../../deps/uv/src/unix/core.c, line 165. It's likely a manifestation of a bug elsewhere but, because there's a new node.js release going out tonight, I'm reverting it for now. This reverts commit 80f2f826bf90b84e659321c0b7fd8af419acb85e. Conflicts: src/unix/stream.c commit 41468050745bc135247f587eae1c38e958fd8377 Author: Ben Noordhuis Date: Thu May 23 07:37:36 2013 +0200 unix: turn off POLLOUT after stream connect Clear the POLLOUT flag after we're done connecting. Not doing so isn't really harmful but it may cause the event loop to wake up more often than it has to. commit 80f2f826bf90b84e659321c0b7fd8af419acb85e Author: Ben Noordhuis Date: Thu May 23 07:16:00 2013 +0200 unix: fix stream refcounting buglet Fix a buglet where uv_read_stop() would mark the handle as stopped even when there are in-progress write requests. This bug is unlikely to have affected anyone, the only case where it has a user-visible effect is when: a) the handle has been stopped for reading but not writing, and b) it's the last active handle in the event loop's pollset If both conditions are met, it's possible for the event loop to terminate prematurely. commit c5d570ddba7b3e95fdade96758df0eb2d24cf42f Author: Bert Belder Date: Thu May 23 14:44:45 2013 +0200 unix: fix assert on signal pipe overflow An incorrect assert() statement was causing libuv to crash when writing to an internal signal pipe would result in EAGAIN/EWOULDBLOCK. This commit doesn't solve the underlying issue that the signal pipe can overflow. This should fix joyent/node#5538 commit c53fe815442559fe58f362279bdc63f5483d6fdb Author: Ben Noordhuis Date: Wed May 22 16:41:52 2013 +0200 unix: implicitly signal write errors to libuv user Fix an infinite loop in the example below when the stream encounters an EPIPE/ECONNRESET/etc. error: // keep writing until we start buffering while (stream->write_queue_size == 0) { uv_write_t* req = make_write_req(); uv_buf_t buf = uv_buf_init("PING", 4); uv_write(req, stream, &buf, 1, write_cb); } uv_write() does not return an error code on write errors, the error is only reported to the callback. Before this commit, uv_write() left stream->write_queue_size untouched on error, meaning the caller had no way to find out about that error until the next tick of the event loop - which in the example above leads to an infinite loop because that next tick is indefinitely postponed. This commit works around that at the cost of some added internal complexity. Fixes joyent/node#5516. commit 739a5b25b5704d526a46a953da8b9b8db31770d4 Author: Ben Noordhuis Date: Mon May 20 20:04:45 2013 +0200 unix: add mapping for ENETDOWN commit a1cb52a3ebe13f8e26a48e194e595e95c677de30 Author: Ben Noordhuis Date: Mon May 20 14:35:10 2013 +0200 darwin: task_info() cannot fail And if it does: assert, don't return errno. It's a mach function, it doesn't set errno. commit e515d71592afe66ddecd6bf2b1409848811cf7ff Author: Ben Noordhuis Date: Fri May 17 14:42:14 2013 +0200 darwin: make two uv__cf_*() functions static commit db7dc6899d9badcfb99016ba87da2a66eae86dad Author: Bert Belder Date: Sat May 18 20:45:36 2013 +0200 win: fix UV_EALREADY incorrectly set UV_EALREADY itself is already a libuv error, it should be set with uv__set_artifical_error and not with uv__set_sys_error. Closes #802 commit d5fa633ef22bd40c81af85dd2ee3882cce3c91c4 Author: Fedor Indutny Date: Fri May 17 20:31:39 2013 +0400 darwin: assume CFRunLoopStop() isn't thread-safe Use signaling mechanism for loop termination, because CFRunLoopStop() is most likely not a thread-safe function and invoking it from other thread may sometimes result in a "dead-lock". fix #799 commit 4f61ab2058c9baffa01d9c865a376ed8d3c65820 Author: Bert Belder Date: Thu May 16 21:29:40 2013 +0200 windows: make uv_spawn not fail under job control * Fix a potential issue introduced with 415f4d3, namely that uv_spawn can fail when the current process is under job control. This would happen on Windows versions that don't support nested jobs (versions prior to Windows 8 / Server 2012). * Change the `uv__init_global_job_handle` function signature to match what `uv_once` expects. * Add a bunch of comments that clarify how we're using job control, and how we're dealing with job control that might be established by our parent process. commit 13496e9c1ab905af0c43a3dda7bdec7dca73d1b3 Author: Bert Belder Date: Tue May 14 16:50:22 2013 -0700 Now working on v0.10.8 commit 028baaf0846b686a81e992cb2f2f5a9b8e841fcf Author: Bert Belder Date: Tue May 14 16:50:19 2013 -0700 2013.05.15, Version 0.10.7 (Stable) Changes since version 0.10.6: * windows: kill child processes when the parent dies (Bert Belder) commit 415f4d3e4c7ac25abf723eed3f5b40e63e045785 Author: Bert Belder Date: Tue May 14 16:48:03 2013 -0700 windows: kill child processes when the parent dies This makes Windows behave just like Unix. This does not affect processes that are spawned with the UV_PROCESS_DETACHED flag set. commit 1fd10deec4de70ec3c13765948ec2726a0023c23 Author: isaacs Date: Tue May 14 14:40:01 2013 -0700 Now working on v0.10.7 commit 11e6613e6260d95c8cf11bf89a2759c24649319a Author: isaacs Date: Tue May 14 14:39:58 2013 -0700 2013.05.15, Version 0.10.6 (Stable) Changes since version 0.10.5: * stream: fix osx select hack (Fedor Indutny) * stream: fix small nit in select hack, add test (Fedor Indutny) * build: link with libkvm on openbsd (Ben Noordhuis) * stream: use harder sync restrictions for osx-hack (Fedor Indutny) * unix: fix EMFILE error handling (Ben Noordhuis) * darwin: fix unnecessary include headers (Daisuke Murase) * darwin: rename darwin-getproctitle.m (Ben Noordhuis) * build: convert predefined $PLATFORM to lower case (Elliot Saba) * build: set soname in shared library (Ben Noordhuis) * build: make `make test` link against .a again (Ben Noordhuis) * darwin: fix ios build, don't require ApplicationServices (Ben Noordhuis) * build: only set soname on shared object builds (Timothy J. Fontaine) commit 0564ee4a66956df1f3e0294e02296158e984d728 Author: Miroslav Bajtoš Date: Wed Apr 17 00:33:25 2013 +0200 test, sunos: disable process_title test Disable unit test failing due to missing implementation of uv_(set|get)_process_title for Sun OS (SmartOS). Based on discussion with @tjfontaine, such implementation is difficult if possible at all and it won't be done anytime soon. Thus there is no point in keeping the failing test around. commit 55c150abfc11ad6c23674c196ed914db0f942224 Author: Timothy J Fontaine Date: Mon May 13 15:48:32 2013 -0700 build: only set soname on shared object builds commit f22163c233d4a9dedfe38ebb18a1a414cd25ba62 Author: Ben Noordhuis Date: Mon May 13 20:06:25 2013 +0200 darwin: fix ios build, don't require ApplicationServices commit a11d16d8f5888aee56f129ddbd54c6130a881d2c Author: Ben Noordhuis Date: Sun May 12 16:42:30 2013 +0200 build: make `make test` link against .a again Commit 3eb6eb3 links the .so with -Wl,-soname which breaks the `make test` target: run-tests is linked against (for example) libuv.so.0.11 while the actual file name is libuv.so. That's relatively easy to fix by getting creative with rpaths but it's even easier to fix by simply linking statically. It also means I no longer have to remember to set LD_BIND_NOW when profiling the benchmarks. commit 3eb6eb35ccf1aedbd2297c98b73df3cb81215e3a Author: Ben Noordhuis Date: Sun May 12 14:48:58 2013 +0200 build: set soname in shared library commit 96a2df80846af3769f6c0d432cae2c5963c51e2e Author: Elliot Saba Date: Sat May 11 14:48:52 2013 -0700 build: convert predefined $PLATFORM to lower case commit fe2a3150c0244759154c4cc472af12eca79df8a8 Author: Miroslav Bajtoš Date: Mon Apr 15 21:03:05 2013 +0200 test: add error logging to tty unit test commit af6e865a076af031213f9afc488c28306d6bc3d2 Author: Miroslav Bajtoš Date: Mon Apr 15 20:36:56 2013 +0200 test: fix process_title failing on linux Shorten the test string from 40 to 38 characters because the title length is limited to 39 characters. Truncation of long titles was introduced intentionally by commit a0c1d84 (see discussion in joyent/node#5006). commit 2c21050956206b5e7962e86f4bdbaade1a44b6ae Author: Miroslav Bajtoš Date: Sat Apr 20 06:43:31 2013 +0200 test: add RETURN_SKIP and RETURN_TODO macros Added two new flags to identify tests that are intentionally ignored (usually because we don't want to implement the tested functionality on current platform) and test serving as TODO list (usually indicating that the tested functionality should be implemented on current plaform in the near future.) commit 9b801d551b70bd4b19e1b29fd3a257bec8051842 Author: Ben Noordhuis Date: Thu May 2 13:59:18 2013 +0200 darwin: rename darwin-getproctitle.m Rename it to darwin-getproctitle.c, it doesn't need an Objective-C compiler. Fix up -Wpedantic warnings about void to function pointer casts and include to get the GetCurrentProcess() function prototype. commit 4b0fac89907380a62c7acc15303a39839f05e011 Author: Daisuke Murase Date: Thu May 2 10:06:03 2013 +0900 darwin: fix unnecessary include headers This file doesn't use any Cocoa functions, CoreFoundation.h is enough here. This line causes compilation error on iOS environment. commit f6fb1dfef149b09c106538bc1040b4444d6c94bb Author: Bert Belder Date: Thu May 2 13:15:21 2013 +0200 ChangeLog: fix incorrect release date commit b3ab332b340fb857c4d6bd43208aa708a6eb00bd Author: Ben Noordhuis Date: Wed May 1 19:14:23 2013 +0200 unix: fix EMFILE error handling On Linux, the accept() and accept4() system calls checks for EMFILE before checking for EAGAIN. Refine our EMFILE error handling tactic to deal with that. Here is what used to happen: 1. The event loop calls accept() and sees EMFILE. 2. Libuv switches to EMFILE error handling mode. It closes a stashed file descriptor and calls accept() again. 3. The accept() system call fails with EAGAIN. 4. Libuv reopens the stashed file descriptor (reaching RLIMIT_NOFILE again) and returns control to the regular event loop. 5. The regular event loop calls accept(), sees EMFILE and jumps to step 2 again. Effectively an infinite loop. Avoid that by not calling accept() again when we've seen EAGAIN. Fixes joyent/node#5389. commit 67f9b91a8b76536c47045a9edabe440fa78a42c0 Author: Fedor Indutny Date: Tue Apr 30 12:51:32 2013 +0400 stream: use harder sync restrictions for osx-hack Synchronize harder to avoid excessive spins, invokations of async callback and sporadic assertion failures on double-call of async callback. commit 4e5b8dc2efb7a5711b0741ff61b9da914b4920fc Author: Ben Noordhuis Date: Mon Apr 29 13:38:57 2013 +0200 build: link with libkvm on openbsd The Makefile already did and now the gyp build does too. Fixes the OpenBSD build of node.js. Fixes joyent/node#5363. commit ac4e7e7ff2d947297ac2995561e49c0e3efdafd9 Author: Fedor Indutny Date: Fri Apr 26 23:43:28 2013 +0400 stream: fix small nit in select hack, add test commit 2400716d875a6481c13fd0b46068ab3b6afa5345 Author: Fedor Indutny Date: Tue Apr 23 22:34:43 2013 -0400 stream: fix osx select hack After latest twiddling, `stream->io_watcher.fd` doesn't contain a real stream's file descriptior anymore. The one from `select_state` should be used instead. Zero-initialize `select_state->event` field. commit a0cb926e2eb9979378f4b71854e8c035035cc3e8 Author: isaacs Date: Mon Apr 22 17:37:25 2013 -0700 Now working on v0.10.6 commit 6595a7732c52eb4f8e57c88655f72997a8567a67 Author: isaacs Date: Mon Apr 22 17:37:22 2013 -0700 2013.04.24, Version 0.10.5 (Stable) Changes since version 0.10.4: * unix: silence STATIC_ASSERT compiler warnings (Ben Noordhuis) * windows: make timers handle large timeouts (Miroslav Bajtoš) * windows: remove superfluous assert statement (Bert Belder) * unix: silence STATIC_ASSERT compiler warnings (Ben Noordhuis) * linux: don't use fopen() in uv_resident_set_memory() (Ben Noordhuis) commit cd10637d0b3c03e28831eca2d66d8bda3216b10c Author: Ben Noordhuis Date: Mon Apr 22 08:24:57 2013 +0200 linux: don't use fopen() in uv_resident_set_memory() RSS is a reflection of the number of pages that a process has mapped. glibc implements fopen() in terms of mmap() which means that trying to read the number of mapped pages changes it. Switch to open(). commit 105e4dcb231f88c8e9a71cca85be9af9267022f4 Author: Ben Noordhuis Date: Mon Apr 22 07:46:21 2013 +0200 unix: silence STATIC_ASSERT compiler warnings Fix the following two warnings: src/unix/core.c:74:1: warning: ISO C90 forbids array 'static_assert_failed' whose size can't be evaluated [-Wvla] src/unix/core.c:76:1: warning: ISO C90 forbids array 'static_assert_failed' whose size can't be evaluated [-Wvla] commit a3963883b81ec2c2612511ff3fa885b2944d8457 Author: Bert Belder Date: Thu Apr 18 02:55:15 2013 +0200 windows: remove superfluous assert statement commit 09ff5100e3ecae807dd19796e08a0b756bc04ddd Author: Miroslav Bajtoš Date: Tue Apr 16 16:29:48 2013 +0200 windows: make timers handle large timeouts Fixes a bug where timers with very large timeouts run on the next tick. Based on a similar bug fix for unix (9b61939). Fixes joyent/node#5101. commit ef85bdaffbc878b44b24f01e97f7c7e7301c6dfe Author: Ben Noordhuis Date: Fri Apr 12 19:37:52 2013 +0200 unix: silence STATIC_ASSERT compiler warnings Newer versions of gcc complain about the definition of the zero element array. Squelch that warning by turning it into a one element array. commit 5ed1d02cc0167704710d1dd4aafd26653eaf810f Author: isaacs Date: Thu Apr 11 09:00:10 2013 -0700 Now working on v0.10.5 commit 85827e26403ac6dfa331af8ec9916ea7e27bd833 Author: isaacs Date: Thu Apr 11 09:00:06 2013 -0700 2013.04.12, Version 0.10.4 (Stable) Changes since version 0.10.3: * include: update uv_backend_fd() documentation (Ben Noordhuis) * unix: include uv.h in src/version.c (Ben Noordhuis) * unix: don't write more than IOV_MAX iovecs (Fedor Indutny) * mingw-w64: don't call _set_invalid_parameter_handler (Nils Maier) * build: gyp disable thin archives (Timothy J. Fontaine) * sunos: re-export entire library when static (Timothy J. Fontaine) * unix: dtrace probes for tick-start and tick-stop (Timothy J. Fontaine) * windows: fix memory leak in fs__sendfile (Shannen Saez) * windows: remove double initialization in uv_tty_init (Shannen Saez) * build: fix dtrace-enabled out of tree build (Ben Noordhuis) * build: squelch -Wdollar-in-identifier-extension warnings (Ben Noordhuis) * inet: snprintf returns int, not size_t (Brian White) * win: refactor uv_cpu_info (Bert Belder) * build: add support for Visual Studio 2012 (Nicholas Vavilov) * build: -Wno-dollar-in-identifier-extension is clang only (Ben Noordhuis) commit 0ff06b4ac38a3d53c32e52b2c649dd2d4b3d2b0c Author: Ben Noordhuis Date: Wed Apr 10 23:40:55 2013 +0200 build: -Wno-dollar-in-identifier-extension is clang only Add a compiler check because turning on the option unconditionally breaks the build when CC=gcc. This should also fix the build on versions of OS X that predate Apple's switch to clang (10.6 and older.) commit 633d33a92a4004938b8a88f661571c3fc93085db Author: mscdex Date: Wed Apr 10 11:36:13 2013 -0400 cygwin: remove unused variable commit bc5fa794b96049e39e7fc1192137db36e1dc4dc8 Author: Nicholas Vavilov Date: Tue Feb 26 15:01:48 2013 +0200 build: add support for Visual Studio 2012 Closes #722 commit a9bce29f0c98187fcf09d1ba9dcd4eb5548fb30e Author: Bert Belder Date: Wed Apr 10 16:02:24 2013 +0200 win: refactor uv_cpu_info Fixes a couple of error handling issues: * Don't free an uninitialized pointer when allocating memory for `cpu_infos` fails. * Don't return a bogus error value when NtQuerySystemInformation fails. That function returns an NTSTATUS code instead of setting the last error. * Don't clobber out parameters when an error happens. commit 9021dbcd8d1dc3b1c6cca82f46d5e774088d4ae6 Author: Brian White Date: Wed Apr 10 14:31:50 2013 +0200 inet: snprintf returns int, not size_t commit 4d4f1496d9b600dfd3e4c4f0040d7b4a0d41043c Author: Brian White Date: Wed Apr 10 14:29:29 2013 +0200 windows, unix: remove dead code commit 8ea49c12235fc22bfe9d192224507c5a1183ee98 Author: Ben Noordhuis Date: Wed Apr 10 14:31:28 2013 +0200 build: squelch -Wdollar-in-identifier-extension warnings The dtrace probes contain dollar signs. We know, llvm-gcc, and we don't care. Suppress the warnings. commit bad707db3f499decd864907809cb5d9b423d1d98 Author: Ben Noordhuis Date: Wed Apr 10 14:21:38 2013 +0200 gitigore: ignore auto-generated uv-dtrace.h header commit be5b16aabd1d1996ca666a48b933a79e3d37b340 Author: Ben Noordhuis Date: Wed Apr 10 14:19:14 2013 +0200 build: fix dtrace-enabled out of tree build commit 603915dd0081ec2f34d612291a1aeb909f6f2b76 Author: Shannen Saez Date: Wed Apr 10 14:16:39 2013 +0200 windows: remove double initialization in uv_tty_init commit 7570a35b70a33258e4c36e080e900f30c3213697 Author: Shannen Saez Date: Wed Apr 10 14:15:13 2013 +0200 windows: fix memory leak in fs__sendfile commit e1ffc6c0eed94a328e8435bc215820a4701ee8b5 Author: Timothy J Fontaine Date: Mon Apr 8 16:17:01 2013 -0700 unix: dtrace probes for tick-start and tick-stop commit 0da533e84f0a4f32d200bf9568548bce1e5e315a Author: Timothy J Fontaine Date: Mon Apr 8 16:31:35 2013 -0700 sunos: re-export entire library when static This is useful to make sure linker doesn't strip things like dtrace commit e294975bb4e01efac13a134b3282193e543c68c7 Author: Timothy J Fontaine Date: Mon Apr 8 16:30:27 2013 -0700 build: gyp disable thin archives Thin archives aren't available on all platforms, notably smartos commit 5676924c5bd7a6e59ec0abb958c31a98b667ea87 Author: Nils Maier Date: Wed Apr 10 14:00:37 2013 +0200 mingw-w64: don't call _set_invalid_parameter_handler Check the __MSVCRT_VERSION__, as mingw-w64 always defines _WRITE_ABORT_MSG. Closes #774 commit 895e77639ee9aa3bc17b4bc9d675d63d7940c396 Author: Fedor Indutny Date: Mon Apr 8 17:10:39 2013 +0400 unix: don't write more than IOV_MAX iovecs Write no more than `IOV_MAX` chunks with `writev()` at once, otherwise `writev()` returns EINVAL. commit f1215b791811e5c860152ecde038f35537dab57f Author: Ben Noordhuis Date: Thu Apr 4 03:02:06 2013 +0200 unix: include uv.h in src/version.c Include uv.h so the compiler sees the right visibility attribute for uv_version() and uv_version_string(). GYP builds compile with -fvisibility=hidden. Before this commit, the symbols were not visible in libuv.so. Fixes joyent/node#5213. commit ec24bfac194419fae2b66aa2bb0d8d9d2cb4547a Author: Ben Noordhuis Date: Sun Mar 31 20:02:24 2013 +0200 include: update uv_backend_fd() documentation uv_run_once() is no more, replace with uv_run(UV_RUN_NOWAIT). Fixes #759. commit 9e90cdeae72b0b55becddfef1d441aeeb588e083 Author: Bert Belder Date: Thu Mar 28 19:59:51 2013 +0100 Now working on v0.10.4 commit 31ebe23973dd98fd8a24c042b606f37a794e99d0 Author: Bert Belder Date: Thu Mar 28 19:56:36 2013 +0100 2013.02.04, Version 0.10.3 (Stable) Changes since version 0.10.2: * include: remove extraneous const from uv_version() (Ben Noordhuis) * doc: update README, replace `OS` by `PLATFORM` (Ben Noordhuis) * build: simplify .buildstamp rule (Ben Noordhuis) * build: disable -Wstrict-aliasing on darwin (Ben Noordhuis) * darwin: don't select(&exceptfds) in fallback path (Ben Noordhuis) * unix: don't clear flags after closing UDP handle (Saúl Ibarra Corretgé) commit a9a23dc28ec73912dfaae4fc2a8d815e20578695 Author: Saúl Ibarra Corretgé Date: Thu Mar 28 15:50:42 2013 +0100 unix: don't clear flags after closing UDP handle commit 75141493ba44addf7e089308e9692357f958ceda Author: Ben Noordhuis Date: Thu Mar 28 00:12:24 2013 +0100 darwin: don't select(&exceptfds) in fallback path The exceptfds set is for polling OOB data, not errors. Fixes joyent/node#5155. commit fe136cedb9f5d627e5b21934a48c97ff62f4c50e Author: Ben Noordhuis Date: Thu Mar 28 00:10:44 2013 +0100 build: disable -Wstrict-aliasing on darwin The antiquated gcc/clang that ships with Xcode emits waaaay too many false positives. commit 0fb9b22ce6263d2996421c1261d39c6bb3255cb5 Author: Ben Noordhuis Date: Tue Mar 26 15:16:24 2013 +0100 build: simplify .buildstamp rule commit bd20b371700e6354d8d0ec3a102048946724f053 Author: Ben Noordhuis Date: Tue Mar 26 14:49:29 2013 +0100 doc: update README, s/OS/PLATFORM/ Commit a9740c9 changed the name of the OS var to PLATFORM but forgot to update the README. commit 3f6122b3f7e58109ff82bb217ff4db3bb310a98b Author: Ben Noordhuis Date: Tue Mar 26 14:45:53 2013 +0100 include: remove extraneous const from uv_version() Fixes the following warning: include/uv.h:236:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] UV_EXTERN const unsigned int uv_version(void); commit d5f8c1a4d3dcfc42b15c75a53427763233bd2110 Author: Bert Belder Date: Mon Mar 25 15:38:41 2013 +0100 Now working on v0.10.3 commit 0f36a00568f3e7608f97f6c6cdb081f4800a50c9 Author: Bert Belder Date: Mon Mar 25 15:32:44 2013 +0100 2013.03.25, Version 0.10.2 (Stable) This is the first officially versioned release of libuv. Starting now libuv will make releases independently of Node.js. Changes since Node.js v0.10.0: * test: add tap output for windows (Timothy J. Fontaine) * unix: fix uv_tcp_simultaneous_accepts() logic (Ben Noordhuis) * include: bump UV_VERSION_MINOR (Ben Noordhuis) * unix: improve uv_guess_handle() implementation (Ben Noordhuis) * stream: run try_select only for pipes and ttys (Fedor Indutny) Changes since Node.js v0.10.1: * build: rename OS to PLATFORM (Ben Noordhuis) * unix: make uv_timer_init() initialize repeat (Brian Mazza) * unix: make timers handle large timeouts (Ben Noordhuis) * build: add OBJC makefile var (Ben Noordhuis) * Add `uv_version()` and `uv_version_string()` APIs (Bert Belder) commit eeeb07934b0b284dd742326b564d59adcc5b0069 Author: Bert Belder Date: Mon Mar 25 15:09:58 2013 +0100 Update AUTHORS and .mailmap commit c7b1c53ef1afe7c0fef0822d72b0783368b626de Author: Bert Belder Date: Mon Mar 25 15:33:59 2013 +0100 Prepare for making releases, add uv_version/uv_version_string API commit 1487d5aea71ef20875f39ef66f0f8be46a8b3baf Author: Ben Noordhuis Date: Sat Mar 23 23:16:53 2013 +0100 build: add OBJC makefile var Overrides the Objective-C compiler that is used. Defaults to $(CC). commit 9b619396d93182be26287f261ac654611aa99d95 Author: Ben Noordhuis Date: Thu Mar 21 14:47:38 2013 +0100 unix: make timers handle large timeouts This commit fixes two closely related integer overflow bugs: * Timers with a timeout > INT_MAX cause uv__next_timeout() to return a negative value. * Timers with very large timeouts (close or equal to ULLONG_MAX) run on the next tick. In both cases, clamp the values to prevent the overflow from happening. Fixes joyent/node#5101. commit 77cb29a723b1bda2cd4f938031d352e46bd25fed Author: Brian Mazza Date: Mon Mar 4 22:17:50 2013 -0600 unix: make uv_timer_init() initialize repeat uv_timer_get_repeat() should return 0 for timers that haven't been started. commit a9740c9bc432fe0b416c4c765a6011ddc2df966f Author: Ben Noordhuis Date: Sun Mar 17 00:12:42 2013 +0100 build: rename OS to PLATFORM Rename the OS make variable to PLATFORM, it conflicts with the OS env var. That is, running `make` when the OS env var is set, may cause spurious build breakage. Fixes #737. commit b45a74fab3745b695aa43d8e20d2c32b10843d5c Author: Fedor Indutny Date: Fri Mar 15 21:54:45 2013 +0400 stream: run try_select only for pipes and ttys Its not necesary for TCP and other streams, since fd is always working with kqueue there. commit 7b66ea18ff47ab47aaf1ca20bc7f544a76b0e8df Author: Ben Noordhuis Date: Thu Mar 14 13:36:05 2013 +0100 unix: improve uv_guess_handle() implementation Make it understand FIFOs, character devices and sockets. commit 9f714a1d25d4e99dfcf4985656b070431431523b Author: Ben Noordhuis Date: Thu Mar 14 12:49:00 2013 +0100 include: bump UV_VERSION_MINOR Fixes #740. commit 905d56c1405b044b3e54e75a9fd22979d9186f3e Author: Ben Noordhuis Date: Tue Mar 12 01:02:28 2013 +0100 unix: fix uv_tcp_simultaneous_accepts() logic Inverts the meaning of the 'enable' argument. Before, it actually set the UV_TCP_SINGLE_ACCEPT flag when enable=1. Now it clears it, which is what uv-win does and what you would expect it to do. commit 47fd23ffc8a175e3363960573f8e45d845569f55 Merge: 1ef1344 5462dab Author: Joe Cheng Date: Mon Mar 11 10:20:57 2013 -0700 Merge tag 'node-v0.10.0' Node v0.10.0 commit 2f84a57566027a66f0f876b31f4524bde41ca91a Author: Timothy J Fontaine Date: Tue Mar 5 11:32:54 2013 -0800 test: add tap output for windows commit 5462dab8890c414154690d8a45b1384301b27436 Author: Bert Belder Date: Sat Mar 9 20:19:28 2013 +0100 win/tcp: don't enable iocp sync bypass when iocp emulation is used When iocp sync bypass is in use libuv doesn't expect the system to generate events when an i/o operation completes synchronously. However when iocp emulation is enabled an event will always be generated because SetFileCompletionNotificationModes() doesn't stop OVERLAPPED.hEvent from becoming signaled. This should fix joyent/node#4959. commit f59dc221e6343a290c7c349bb1875029bedb0a9a Author: Bert Belder Date: Sat Mar 9 18:24:59 2013 +0100 win: fix potential HANDLE corruption due to incorrect cast Closes #738. commit b68ee4049688494026c0f2a703a2d09aeff18438 Author: isaacs Date: Thu Mar 7 15:59:21 2013 -0800 win: Map ERROR_INVALID_FUNCTION to EISDIR This error is raised when calling read() or write() on a directory. A bit of googling turns up some cases where this error can be raised that are not properly mapped to EISDIR, but are also cases that libuv doesn't really care about, like the Password Manager API, GetFirmwareEnvironmentVariable, or CreateTapePartition. If libuv ever needs to handle these cases, then I suppose that the ERROR_INVALID_FUNCTION->EISDIR mapping could be done directly in the fs read() and write() functions, but doing so at this point seems premature, as it makes the error code mapping a bit more messy. Fixes joyent/node#4951 commit 8fbe43379de4b8958c45e47b54d296ff1bef79e4 Author: Ben Noordhuis Date: Thu Mar 7 01:54:04 2013 +0100 unix: please valgrind, free memory in threadpool.c commit dac5a758f8161b5e7aa42fea12582025a9b4e150 Author: Ben Noordhuis Date: Thu Mar 7 00:28:15 2013 +0100 unix: replace volatile cast with ACCESS_ONCE macro commit e0df7b687339fc035ef0148e161d77f01dcc2d9a Author: Ben Noordhuis Date: Thu Mar 7 00:15:48 2013 +0100 unix: fix strict aliasing warning in udp.c commit b6a50c7295c8dc27c697a164f5bb3b594d025209 Author: Ben Noordhuis Date: Thu Mar 7 00:17:19 2013 +0100 unix: add uv_buf_t static asserts to core.c Verify that our uv_buf_t type is ABI-compatible with struct iovec. commit ef9b0655328baf623a9e1951b2e261ba70a3ded3 Author: Ben Noordhuis Date: Wed Mar 6 23:59:48 2013 +0100 unix: add STATIC_ASSERT macro commit ee9899e28b3f5ac4e3b42de8173f9237db7e1f06 Author: Ben Noordhuis Date: Wed Mar 6 23:43:25 2013 +0100 unix: fix strict aliasing warnings, macro-ify functions Replace a few internal functions in uv-common.h with macros to avoid strict aliasing warnings with older versions of gcc. It's not smart enough to figure out that e.g. a uv_tcp_t is an instance of uv_handle_t with similar alignment requirements and therefore no aliasing happens. More recent versions of gcc don't suffer from this. I'm not normally in the habit of catering to compiler defects but the aliasing warnings drown out legitimate warnings, hence the change. commit 1e97b4567e1717bf17316230eff6e1a7350b8034 Author: Ben Noordhuis Date: Wed Mar 6 23:14:37 2013 +0100 unix: honor UV_THREADPOOL_SIZE environment var Make the size of the thread pool configurable through an environment variable. For sanity reasons, the size is clamped to the range 1-128. commit f89125e0e631f6b87b3a65970d88111825d7dc59 Author: Bert Belder Date: Tue Mar 5 20:31:52 2013 +0100 win/tty: fix typo in color attributes enumeration commit 4abad2381e126ad7a9eb18342172e495bf6e681d Author: Bert Belder Date: Tue Mar 5 20:05:36 2013 +0100 win/tty: don't touch insert mode or quick edit mode Hopefully this fixes joyent/node#4809. commit 8a99762c0e8e7fe6fe65133a7a8faafb73641c67 Author: Bert Belder Date: Tue Mar 5 20:03:40 2013 +0100 win/tty: fix case where uv_read_start incorrectly reports failure In very rare circumstances a uv_read_start() call on a uv_tty_t handle in raw mode would return -1 but there was no actual failure. This patch fixes that. commit 1ef1344e9c94672757fbf83b1e78e09bba6ec24f Merge: ec9708f 2a8d2a5 Author: Joe Cheng Date: Tue Mar 5 10:21:58 2013 -0800 Merge tag 'node-v0.9.11' into HEAD commit 0b26af376a8d788adf00ed4cb60aba4da2f046c1 Author: Ben Noordhuis Date: Tue Mar 5 15:57:38 2013 +0100 unix: handle POLLERR and POLLHUP in uv__stream_io Fixes a busy loop when the file descriptor emits POLLHUP but not POLLIN or POLLOUT, e.g. when polling the read end of a pipe and the write end is closed. Fixes joyent/node#4923. commit ea0796f3bf242fdc173751a23df8c1c70a09dcdb Author: Bert Belder Date: Mon Mar 4 20:22:25 2013 +0100 windows: link with advapi32 and shell32 libraries Older versions of GYP would set up the Visual Studio project to link with these libraries by default, but this was changed in r1584 (see https://codereview.chromium.org/12256017). Closes #728 commit 7e59f9bb5389268fb554d435333325920d7783ba Author: Ben Noordhuis Date: Sat Mar 2 01:44:31 2013 +0100 linux: make uv_cpu_info() handle absent procfs Return an error when reading from /proc files fails because the procfs isn't mounted. commit 2a8d2a5b73878e00823c59b29bf887b8b4b11743 Author: Ben Noordhuis Date: Fri Mar 1 01:57:45 2013 +0100 darwin: fix spurious uv_write2() segfault We abuse uv_write2() to send over UDP handles to child processes. Don't call uv__stream_fd() on those handles, it's a macro that on OS X evaluates to a function that operates on a uv_stream_t with a couple of OS X specific fields. On other Unices it does (handle)->io_watcher.fd, which works but only by accident. Fixes joyent/node#4870. commit 0ad46bdb56959aee089aa261b15bed7af177de5f Author: Marc Schlaich Date: Thu Feb 28 14:29:20 2013 +0100 build, windows: return an error code on failure commit 49d2ae33ef4f871496e042ed83cf5a7c65b97857 Author: Timothy J Fontaine Date: Wed Feb 27 13:39:10 2013 -0800 test: fix tap output even when ok but have output commit 1821bba40898ec074b284dc457e46cc1e4f65e33 Author: Ben Noordhuis Date: Wed Feb 27 22:19:20 2013 +0100 test: fix tap output check Only report as an error when status != 0. Stops the platform_output test from being reported as having failed on Jenkins. commit cdf69dbed62855140e8c3c259b172af7078821a2 Author: Ben Noordhuis Date: Wed Feb 27 22:08:58 2013 +0100 build: add distclean target to out-of-tree builds commit dd2002520797921c5e2f8b060aa412beb41aa09e Author: Ben Noordhuis Date: Wed Feb 27 22:06:43 2013 +0100 build: make clean target remove all build artifacts commit 78dcaa5cac4a53d7854005576f07dc536575cee0 Author: Ben Noordhuis Date: Wed Feb 27 21:46:46 2013 +0100 darwin: fix read from uninitialized struct kevent In the OS X fallback code, don't read from the struct when the kevent() syscall times out. commit 7c3b9e5a121db6c0e8f193750afd1b272994eeab Author: Ben Noordhuis Date: Wed Feb 27 21:40:03 2013 +0100 unix: make stream.c internal functions static commit a924f79023b57d947c9aee2d3bafe8f0cc95520b Author: Ben Noordhuis Date: Sun Feb 24 17:14:16 2013 +0100 test: remove 'is root?' check I debug tests regularly as root (because dtrace and dtruss require the additional privileges). The 'is root?' check gets in the way more often than it prevents me from doing something silly. Remove it. commit 85124d7eb5d9455316c46eb36140cdb80154409a Author: Marc Schlaich Date: Wed Feb 27 13:38:14 2013 +0100 build, windows: allow override of python executable Fixes #723. commit a0c1d84c144da61a777e9d6554b9e832e3dd8d1d Author: Ben Noordhuis Date: Tue Feb 26 19:14:40 2013 +0100 linux, darwin: don't touch environ in uv_setup_args Don't overwrite the environment. On OS X, the entries in the environ table are not necessarily adjacent. It's arguably also safer for setuid binaries. Fixes joyent/node#4847. commit c5101ae9b504dc8c0ccf90a6bda6f3a1a2f9cd0b Author: Andrius Bentkus Date: Fri Feb 15 04:27:32 2013 +0100 unix, windows: add common uv_udp_* error checking commit ae2b30a48f5cf0cda91c395a5af20cfa7769d5dc Author: Saúl Ibarra Corretgé Date: Tue Feb 26 11:17:49 2013 +0100 windows: initialize stop_flag explicitly The default loop lives in the bss section so it's zeroed on startup but loops created with uv_loop_new() live on the heap and contain random garbage. Initialize the stop_flag explicitly to avoid spurious bugs. commit ec9708feb100910093338ae0c70863e854b8393b Merge: 71428e3 72bbf5d Author: Joe Cheng Date: Mon Feb 25 14:24:44 2013 -0800 Merge remote-tracking branch 'upstream/master' commit 72bbf5d702475e7f42ce551857b1e0ab2e8ddff5 Author: Timothy J Fontaine Date: Mon Feb 25 09:43:34 2013 -0800 test: don't rewind_cursor when using tap_output commit 4b957482ba1ba12e40933ef1815ee6a098450280 Author: Saúl Ibarra Corretgé Date: Mon Feb 25 17:20:34 2013 +0100 windows: fix uv_stop in ONCE and NOWAIT modes Same as the fix in 492efb9 but this time for uv-win. commit 492efb95ffc5b33a179cfaeb8215dc52111fb4d6 Author: Ben Noordhuis Date: Mon Feb 25 16:40:58 2013 +0100 unix: make uv_stop work when embedded * Make uv_stop() work when libuv is embedded in another event loop. * Fix a small bug where loop->stop_flag was not reset when mode == UV_RUN_ONCE or UV_RUN_NOWAIT. The next call to uv_run() would return immediately without doing any work. commit bb3d1e24da288db876dcbfa4e983c9ceeb583890 Author: Saúl Ibarra Corretgé Date: Wed Jan 16 09:36:20 2013 +0100 unix, windows: add uv_stop, stop running event loop commit 79880121cecb622226663d65e5e0145799a57f50 Author: Saúl Ibarra Corretgé Date: Wed Jan 16 09:24:28 2013 +0100 windows: align uv_run code with unix commit ce1a266c05f8aa6e1e0072558eac287fe70cf962 Author: Marc Schlaich Date: Mon Feb 25 11:27:40 2013 +0100 build: fix misleading vcbuild.bat error message commit 6ba6f4b4d651c1e3aff6946ef3c7a2f1b2c5d6d8 Author: Ben Noordhuis Date: Mon Feb 25 03:43:01 2013 +0100 build: turn on strict aliasing in release builds commit 39c8a90a91211d047fa3c267814e17d5c10cc83c Author: Ben Noordhuis Date: Mon Feb 25 03:22:10 2013 +0100 unix: set errno in sendfile emulation The sendfile emulation in src/unix/fs.c polls the file descriptor for write readiness. If POLLERR or POLLHUP is set, it bails out but doesn't set errno (hence it doesn't report a useful error code). Rectify that. Fixes #620. commit b04fc33ef748293498023f3cf2dc987e8c1ffdd4 Author: Ben Noordhuis Date: Mon Feb 25 02:25:49 2013 +0100 linux: use eventfds for async handles Use eventfds to drive async handles, fall back to regular pipes on older kernels (pre-2.6.22). Gives a nice boost on the async handle benchmarks. Before: 12,516,113 async events in 5.0 seconds (2,503,222/s, 1,048,576 unique async1: 11.95 sec (83,701/sec) async2: 11.65 sec (85,862/sec) async4: 5.20 sec (192,154/sec) async8: 9.97 sec (100,315/sec) async_pummel_1: 1,000,000 callbacks in 2.56 seconds (389,919/sec) async_pummel_2: 1,000,000 callbacks in 2.65 seconds (377,205/sec) async_pummel_4: 1,000,000 callbacks in 2.18 seconds (457,704/sec) async_pummel_8: 1,000,000 callbacks in 4.19 seconds (238,632/sec) After: 16,168,081 async events in 5.0 seconds (3,233,616/s, 1,048,576 unique async1: 11.08 sec (90,213/sec) async2: 10.17 sec (98,297/sec) async4: 4.81 sec (207,789/sec) async8: 8.98 sec (111,419/sec) async_pummel_1: 1,000,000 callbacks in 1.16 seconds (863,296/sec) async_pummel_2: 1,000,000 callbacks in 1.45 seconds (691,459/sec) async_pummel_4: 1,000,000 callbacks in 0.66 seconds (1,514,770/sec) async_pummel_8: 1,000,000 callbacks in 1.42 seconds (704,549/sec) That's a speedup from anywhere between 10% to 330%. commit 92151658eb46956b70a8976e577258486bd9071f Author: Ben Noordhuis Date: Mon Feb 25 01:32:19 2013 +0100 unix: abstract away async pipe infrastructure This commit lays the groundwork for the switch to eventfds on Linux. commit e89aced8d6ca9e5fcb3d5e6159db0322beef4234 Author: Ben Noordhuis Date: Sun Feb 24 03:50:31 2013 +0100 darwin: implement uv_set_process_title, part 2 Make changes to the process title visible to tools like `ps`. The argv clobber technique is reasonably portable across Unices; the common code has been moved into src/unix/proctitle.c and is used on Linux and OS X. Other platforms will probably follow in the future. commit 14eb8b03919db9004503691c63c937fef9c405b1 Author: Ben Noordhuis Date: Sun Feb 24 02:26:28 2013 +0100 darwin: implement uv_set_process_title, part 1 Apply undocumented Carbon magic to change the process title in a way that's visible in the Activity Monitor. commit 0761fb51b2579cfec7051011a453b5203a9d8ef8 Author: Ben Noordhuis Date: Sun Feb 24 02:24:09 2013 +0100 build: support 64 bits darwin builds Before this commit, gyp built 32 bits versions of libuv exclusively. Enable with: $ ./gyp_uv -Dtarget_arch=x64 commit bfe269b8a0ebe89b6b0695bdfb727dbf9ac273d5 Author: Timothy J Fontaine Date: Thu Feb 21 11:46:59 2013 -0800 test: add tap output Given UV_TAP_OUTPUT being set, test result output should use TAP formatting commit 71428e37d88a070804b217122e89d2932fa5daa4 Merge: edee5cd c98083e Author: Joe Cheng Date: Fri Feb 22 14:01:55 2013 -0800 Merge remote-tracking branch 'upstream/master' into HEAD commit c98083ef26209a1669f26aa7bbf48b2fc9402b47 Author: Ben Noordhuis Date: Fri Feb 22 17:02:04 2013 +0100 unix: short-circuit on no-op io watcher changes Don't add the io watcher to the watcher queue if the requested change is effectively a no-op, that is, when the event mask doesn't change. The exception here is sunos because the event ports backend requires that watched file descriptors are re-added on every turn of the event loop. This commit is a micro-optimization, it does not change the event loop's observable behavior in any way. commit da0b84d4e8408a6f92147d8127b01b3274215444 Author: Ben Noordhuis Date: Fri Feb 22 14:39:39 2013 +0100 unix: auto-unref spawn handle on process exit Consistent, for better or worse, with uv-win. Fixes #718. commit edee5cd40471489d7420dfc7407f71355f520002 Author: Joe Cheng Date: Thu Feb 21 14:52:50 2013 -0800 Another fix for RTools toolchain commit 3348cd74075bf593ab8484d9ad915699d4b9c9fc Author: Ben Noordhuis Date: Thu Feb 21 23:11:40 2013 +0100 unix: handle EINPROGRESS for unix sockets Before this commit, it was assumed that connect() on UNIX sockets never returns EINPROGRESS. It turned out to be a bad assumption: Dave Pacheco reports sporadic hangups on SmartOS because of that. It's not clear to me _why_ the Illumos kernel returns that error but that's inconsequential: whatever the cause, libuv needs to handle it and now it does. Fixes joyent/node#4785. commit 1d64c8284d373da9dc8652d71cd9a3f904915739 Author: Ben Noordhuis Date: Thu Feb 21 10:29:16 2013 +0100 unix: use uv__set_artificial_error in uv_write2 * Use uv__set_artificial_error(), slightly more efficient than uv__set_sys_error(). * Return UV_EINVAL instead of UV_EOPNOTSUPP. * Fix up style. commit 9a8db3c0cb97520ffec57c42d60f1f329ecc9471 Author: Saúl Ibarra Corretgé Date: Thu Feb 21 10:01:27 2013 +0100 unix: reduce line count, return uv__set_sys_error commit 3f47a2da5c5b7f13d227fc99b760cc6a949f152a Author: Saúl Ibarra Corretgé Date: Thu Feb 21 09:56:33 2013 +0100 unix: fail early on bad send_handle in uv_write2 Return UV_EBADF if send_handle doesn't have a valid fd. commit 26fa6f8031d35513857525197c8ec85e596d3fa7 Author: Ben Noordhuis Date: Wed Feb 20 21:05:38 2013 +0100 linux: fix abort() on epoll_ctl() race condition Don't check the return value of epoll_ctl(EPOLL_CTL_DEL). When the file descriptor is closed, we're potentially racing with another thread and that means the errno is not a reliable indicator of the actual error. The other event mechanisms (kqueue, event ports) are not affected because: * kqueue returns either EBADF or ENOENT. Both are handled by libuv. * event ports rearms all file descriptors on each call to port_getn(). Fixes joyent/node#4558. commit fd24a69c52b2b69dc89109d5acc624938832c0f5 Author: Ben Noordhuis Date: Wed Feb 20 19:50:35 2013 +0100 build: fix shared-after-static build Executing `make libuv.so` after `make libuv.a` failed because the libuv.a target compiled the files in src/ without -fPIC. Make the libuv.so target depend on files with a different suffix to keep them separated. commit 7048a80613bb63066b0af15322e6bafa3f418c01 Author: Ben Noordhuis Date: Wed Feb 20 17:11:50 2013 +0100 doc: document _LARGEFILE_SOURCE + _FILE_OFFSET_BITS commit 30f628834782c1639b3a794212e8f6a4fb5a027a Author: Ben Noordhuis Date: Wed Feb 20 17:01:00 2013 +0100 unix, windows: make uv_timer_get_repeat() const correct commit 0cb9fbfe184e76ce8de6fe80556b9d74116b6c22 Author: Ben Noordhuis Date: Wed Feb 20 16:58:36 2013 +0100 unix, windows: change timer intervals to uint64_t commit d6bfedb8629d18a84c1e67d7073de56dabd540b8 Author: Ben Noordhuis Date: Wed Feb 20 16:42:15 2013 +0100 unix, windows: make uv_now() return uint64_t Using int64_t doesn't make sense here because the return value is never negative. commit 6bf1a56e9d60737ef26509d9e304c03e008972d4 Author: Andrius Bentkus Date: Fri Feb 15 10:12:44 2013 +0100 Return the errorcode provided by uv_set_artificial_error. This reduces the line count. commit 7480974efeec4fe6795cfe6b3bd9e30777b2925f Author: Andrius Bentkus Date: Fri Feb 15 05:26:08 2013 +0100 Adhere to the naming conventions in uv_timer_* functions. In the src/*/timer.c code the first argument is called handle, not timer. We should be consistent in the interface definition file. commit b6f72e54c46f2c5404b5c0ee79f9d4751e716dbe Author: Ben Noordhuis Date: Tue Feb 12 16:18:33 2013 +0100 linux: fix O_CLOEXEC/O_NONBLOCK defines commit da71649991029bcfabc429b26685bf17bb3d48d1 Author: Ben Noordhuis Date: Sun Feb 10 17:30:18 2013 +0100 unix, windows: make uv_fs_t.statbuf public Make the statbuf field public. This means you no longer have to use req->ptr - though that still works and will continue to work for the foreseeable future. Fixes #704. commit fadfeaf6ecd4afce6e2781c74e5c7a4289eb524b Author: Shigeki Ohtsu Date: Thu Feb 7 13:59:17 2013 +0900 unix,windows: fix timer order in case of same timeout Compare start_id of timer handles when they have the same timeout. start_id is allocated with loop->timer_counter in uv_timer_start. commit c15d4a7c6250a44fdfa0c6efab3ebcad359abc7d Author: Fedor Indutny Date: Fri Feb 8 14:48:52 2013 +0400 stream: use kevent() information before accept() Limit number of syscalls by using backlog length information provided by kevent(). commit da33bba7c04e0873b457a9a4290bed2adf620154 Author: Ben Noordhuis Date: Wed Feb 6 23:24:49 2013 +0100 darwin: make uv_cond_timedwait() clock skew safe Use pthread_cond_timedwait_relative_np() so we're not prone to spurious bugs caused by clock skew. commit 5fa690397a254478c07bea44c64dfb29750a5c8f Author: Saúl Ibarra Corretgé Date: Wed Feb 6 22:57:02 2013 +0100 win: Avoid using subversion to download gyp commit d5dd7d0758a19be4a92883dd98669585fc880d72 Author: Ben Noordhuis Date: Wed Feb 6 20:38:16 2013 +0100 darwin: merge uv_cond_timedwait implementation This is a revised version of commit 8311390. commit 8d746ff72dfdc2d31f094ae421ae534a5f72edc3 Author: Ben Noordhuis Date: Wed Feb 6 16:32:01 2013 +0100 unix: remove scandir prototype workaround in fs.c It's not necessary for newer OS X releases and I don't care enough about OpenBSD to squelch the warning. commit 60dd395a5b083b384d2fc39e195f411b75e97fc9 Author: Ben Noordhuis Date: Wed Feb 6 16:04:46 2013 +0100 Revert "darwin: merge uv_cond_timedwait implementation" Using mach_absolute_time() for the pthread_cond_timedwait() timeout breaks a number of tests on OS X 10.8.2. This reverts commit 8311390f13177f3086ecdac875115d2d4cc2688b. commit 8311390f13177f3086ecdac875115d2d4cc2688b Author: Ben Noordhuis Date: Mon Feb 4 20:12:22 2013 +0100 darwin: merge uv_cond_timedwait implementation Merge the OS X specific implementation of uv_cond_timedwait() with the generic one. The only difference is that it now uses mach_absolute_time instead of gettimeofday. commit b271b0686de1d26da3ce7a8df4a4a0ec0d1eecf2 Author: Ben Noordhuis Date: Sat Feb 2 01:13:40 2013 +0100 build: fix up WIN_SRCS commit e14c77914ae1c9711c4028680e73c78afbdff9ab Author: Joe Cheng Date: Fri Feb 1 11:08:39 2013 -0500 Fix building with RTools 2.15 toolchain commit 7f3c7835831c9308ee3728883db0f77ab4dbf7df Author: Ben Noordhuis Date: Thu Jan 31 15:27:13 2013 +0100 unix: don't clobber errno in signal handler commit 3759d71269c7549914639dce4bd14f69d28d8ec3 Author: Bert Belder Date: Sat Jan 26 04:16:26 2013 +0100 win: get rid of early ipv6 support detection No longer explictly check wheter an IPv6 stack is present when the user tries to use IPV6 sockets. Instead realy on the operating system to report the lack of protocol support via appropriate error messages. commit f21d94125eaac98da65c288e03ddc88e64f9e54f Author: Bert Belder Date: Sat Jan 26 05:16:49 2013 +0100 win/udp: DRY up setting SO_REUSEADDR This patch makes sure that only uv_udp_set_socket sets the SO_REUSEADDR bit for UDP sockets. commit 3d779000b16f766f9fe5465fec970157740d0e06 Author: Bert Belder Date: Sat Jan 26 04:12:01 2013 +0100 win/udp: fix bug in getsockopt() return value check commit 4f54053517a3fb6184fdd83a7ccc7a29044f5317 Author: Bert Belder Date: Sat Jan 26 05:08:48 2013 +0100 win/udp: make uv_udp_set_socket set UV_HANDLE_IPV6 This patch makes uv_udp_set_socket responsible for setting the UV_HANDLE_IPV6 flag. It also fixes the problem that uv_udp_open would never set this flag at all. In addition, this patch fixes some minor style issues. commit 40c60cfc54fe894d058ce712541c727115104ffe Author: Bert Belder Date: Sat Jan 26 04:11:28 2013 +0100 win/tcp: make uv_tcp_set_socket set UV_HANDLE_IPV6 This makes uv_tcp_set_socket responsible for setting the UV_HANDLE_IPV6 flag. This fixes a couple of situations where the the fact that a socket is an IPv6 socket is not taken into account when deciding whether a call to SetFileCompletionNotificationModes is appropriate. It also fixes the issue that uv_tcp_open would never set this flag at all. commit cfe14452ae97322939bdf1e1ffe608fc757c3968 Author: Bert Belder Date: Sat Jan 26 03:52:32 2013 +0100 win: fix uv_winsock_init crash when no IPv4 stack present uv_winsock_init() tries to create an IPv4 socket in order to detect if the system has any layered service providers (LSPs) installed. When creating this socket failed it would call uv_fatal_error and exit with the following message: socket: (10047) An address incompatible with the requested protocol was used. This patch fixes that. It also includes some minor style tweaks. commit 00503d60674f6b4bd2600cb53683dd37655b8b16 Author: Bert Belder Date: Sat Jan 26 02:46:51 2013 +0100 win: add error mappings related to unsupported protocols commit 98c79f3e0dc50a3571773e471967969513b110e4 Author: Bert Belder Date: Sat Jan 26 02:46:25 2013 +0100 win: sort error code mappings commit 40a9e119fffbb7c745c53a9c99e1e0bca45976e1 Author: Ben Noordhuis Date: Tue Jan 29 16:58:47 2013 +0100 build: fix up dependency rules * Auto-create build subdirectories. * Add coarse dependencies on header files so make rebuilds the sources whenever the headers change. commit b607a7fed7934c507efa6d1ca08daee773214dac Author: Ben Noordhuis Date: Tue Jan 29 16:47:47 2013 +0100 linux: move files out of src/unix/linux Flattens the source tree and simplifies the Makefile. commit 75dea933ebe6abce4157a8aa09590a6b80e9b9a5 Author: Ben Noordhuis Date: Tue Jan 29 16:12:12 2013 +0100 build: support out of tree builds Invoking make with builddir_name=/path/to/dir builds libuv in the designated directory. commit 01fe4e73a695587d7aacbb1a6b998807b7917f64 Author: Ben Noordhuis Date: Tue Jan 29 14:39:41 2013 +0100 build: add OS= make switch Overrides the platform detection heuristic. Useful for cross-compiling. commit 93f61b7c3f64b2c0ed9c9818c9b46c214eb50cf1 Author: Ben Noordhuis Date: Sun Jan 27 14:50:09 2013 +0100 unix: fix style issues in udp.c commit e4d8cbac7875449a6c4cf65d98d621738fbc21e6 Author: Bert Belder Date: Tue Jan 22 23:58:13 2013 +0100 unix: support sending uv_udp_t handles over ipc pipes commit cf1dc61317774ad4d0b61b392df7a6cbd862bb1b Author: Ben Noordhuis Date: Tue Jan 22 16:49:06 2013 +0100 test: remove .travis.yml Travis CI was generating a lot of false positives (or rather, false negatives - tests that fail due to the environment they run in) and it's been in a continuous error state for days now. Remove it, we'll set up something ourselves. commit 7841f77b2e36006f8469ab396c4c5560030fe64a Author: Ben Noordhuis Date: Tue Jan 22 16:15:58 2013 +0100 build: don't export _POSIX_C_SOURCE on non-linux Don't export _POSIX_C_SOURCE to dependents. On the BSDs (and the BSD-ish, like OS X), it hides SysV and BSD definitions. The exception is Linux: _POSIX_C_SOURCE=200112 unlocks some of the newer pthreads features like spinlocks and barriers, so keep exporting it on that platform. commit bdb498f8b1e61dd5a9ed6263fabe159c2ed0c401 Author: Andrius Bentkus Date: Tue Jan 22 14:13:26 2013 +0100 unix, windows: return UV_EINVAL, not UV_EFAULT A wrong multicast membership should return EINVAL. commit 017e2d5fde0c22d959b0890abb4b614ebf7630f3 Author: Andrius Bentkus Date: Fri Jan 18 01:38:06 2013 +0100 unix, windows: make uv_*_bind() error codes consistent Just like uv_tcp_connect() it should return an EINVAL when the handle is of an invalid type or when the network address is faulty. commit 372ac34d5f80412c09cc40a4e3b72379afa7f637 Author: Ben Noordhuis Date: Thu Jan 17 18:34:02 2013 +0100 linux: translate futimes() fallback error codes The fallback added in 9d4a16e uses the /proc filesystem to emulate utimensat(). Translate error codes that indicate no procfs is mounted to ENOSYS. Letting those error codes through unchecked will only confuse callers. commit 358957cdec34cc2c7c0116637e624800b0e5e36a Author: Ben Noordhuis Date: Thu Jan 17 16:39:04 2013 +0100 doc: update gyp build instructions commit 9d4a16eefe9d579d0c4eafaa3124f78c7ad526ec Author: Ben Noordhuis Date: Thu Jan 17 14:19:58 2013 +0100 linux: add futimes() fallback The utimensat() syscall was added in 2.6.22. Add a fallback mode for older kernels that uses utimes("/proc/self/fd/"). Fixes #687. commit 629a59b35b1af797a1571559105aef8df613c8cf Author: Ben Noordhuis Date: Thu Jan 17 01:26:41 2013 +0100 linux: use stdint types in structs Use the typedefs from stdint.h to avoid build breakage on systems where __u64 and friends are hidden when --std=c89 is in effect. Fixes #685. commit e7f384f8532493b52916968a8b9e995e534e6b7b Author: Ben Noordhuis Date: Wed Jan 16 23:59:57 2013 +0100 test: make threadpool tests valgrind-compliant Delete the event loop after the test to stop valgrind from complaining about memory leaks. commit 4ba03ddd569bdd361b1498d5f19ec0075db01500 Author: Ben Noordhuis Date: Wed Jan 16 23:20:03 2013 +0100 unix, windows: rename uv_run2 to uv_run This changes the prototype of uv_run() from: int uv_run(uv_loop_t* loop); To: int uv_run(uv_loop_t* loop, uv_run_mode mode); Where `mode` is UV_RUN_DEFAULT, UV_RUN_ONCE or UV_RUN_NOWAIT. Fixes #683. commit 4cbd5c7b32095356ac7dd34beea7e09c430650fc Author: Ben Noordhuis Date: Wed Jan 16 00:29:16 2013 +0100 test: remove bad tcp_write_error test It makes the assumption that if you try to write to a localhost socket often enough, eventually its send queue will fill up - which doesn't happen if the machine it's running on is fast enough. commit 768b5246398ccc273a98f27ff0b3c3617df69eb0 Author: Ben Noordhuis Date: Mon Jan 14 16:53:35 2013 +0100 unix: make stream.c more DRY commit c931e317465b7edf39bd127f747538d2b3af0b53 Author: Ben Noordhuis Date: Mon Jan 14 11:32:54 2013 +0100 unix: make assertion message more descriptive commit 8e3e60ffbf204d78b3cc8e23bb3e0b8385442467 Author: Ben Noordhuis Date: Sun Jan 13 00:51:27 2013 +0100 linux: only pack struct uv__epoll_event on x86_64 On i386, it does not need packing; it's 12 bytes packed or unpacked. On ARM, it's actively harmful: the struct is 12 bytes when packed and 16 bytes when unpacked. commit 9cd9bd33b47530e191bdee39bb6a9e5d33ee6053 Author: Ben Noordhuis Date: Sun Jan 13 00:50:57 2013 +0100 build: fix host/target arch detection Setting the target_arch without setting the host_arch as well was effectively broken. commit 9aab5d483794be45e9db0ceb9dbee3e9b6f199f5 Author: Ben Noordhuis Date: Fri Jan 11 13:26:29 2013 +0100 Revert "unix: improve uv_guess_handle() implementation" This reverts commit 98bcddc8dddb4b85425d846f546e81e8ccf633f8. It's making a lot of tests in the node.js test suite fail. commit fc42885d0ebb877864f989a0a78ed3b4125448aa Author: Ben Noordhuis Date: Fri Jan 11 13:39:28 2013 +0100 unix: set closed fd to -1, avoid double close bugs * abort() if close() fails * set fd to -1 after close() to prevent double close bugs commit 2ec2a5194fd65addbf1995992e91712719c532c9 Author: Ben Noordhuis Date: Fri Jan 11 13:03:47 2013 +0100 unix: clean up code in process.c commit 6f679a4ff7bd332eb601e11a7d815311e22612c5 Author: Ben Noordhuis Date: Fri Jan 11 12:57:04 2013 +0100 unix: don't swap stdin file descriptors Bug introduced in 47f496a. It turns out the file descriptors of the stdin pipe don't have to be swapped around. commit 2cecd0d3d1b2b99bbe35d5eb1f9ac2c70f136e23 Author: Bruce Mitchener Date: Thu Jan 10 16:59:25 2013 +0700 include: fix typos in comments commit 80f6a9c643f56521731a7f51b65100fbc8913c39 Author: Ben Noordhuis Date: Thu Jan 10 01:20:05 2013 +0100 unix: omit second fcntl() call if possible Omit the fcntl() syscall when the O_NONBLOCK or FD_CLOEXEC is already set/clear because it's a no-op in that case. commit 9eedd32e409b51ed342d4c91530af38681743927 Author: Ben Noordhuis Date: Wed Jan 9 17:24:20 2013 +0100 build: make clean target remove libuv.{a,so,dylib} commit bc0c61cd7fa9cc5b991f8def6afb5fab9d1baa95 Author: Tim Bradshaw Date: Thu Dec 20 22:26:34 2012 +0000 linux: ensure that all CPUs have model information commit 98bcddc8dddb4b85425d846f546e81e8ccf633f8 Author: Ben Leslie Date: Sun Dec 9 13:26:14 2012 -0500 unix: improve uv_guess_handle() implementation uv_guess_handle is currently squelching both fifo and all sockets on to the UV_NAMED_PIPE type. Rather than treating all sockets as UV_NAMED_PIPE, use getsockopt() and getsockaddr() to determine if the socket is an AF_UNIX stream (in which case return UV_NAMED_PIPE), or an AF_INET stream (in which case return UV_TCP), or an AF_INET datagram socket (in which case return UV_UDP). Additionally, currently all other file descriptor types are squelched to the UV_FILE type. Instead, only file descriptors that are marked as regular files are treated as UV_FILE. All other types (such as directories, character and block devices) are now treated as UV_UNKNOWN_HANDLE. commit cb3c448d8f3ec8c361d181db373c6c65b4d90b7d Author: Ben Noordhuis Date: Mon Jan 7 15:42:28 2013 +0100 unix: fix GNU-ism introduced in edd1007 Don't use features.h, it's only available on GNU/glibc systems. commit f24335d4984bfff7f9bbc82cbe7fb2217d0c3933 Author: Ben Noordhuis Date: Sun Jan 6 22:31:15 2013 +0100 test: fix #if defined checks Same as edd1007 but this time for the tests. commit fb725c08938fbd81ee7fc538031103149deffbf9 Author: Ben Noordhuis Date: Sun Jan 6 22:27:40 2013 +0100 test: simplify tcp_ref2b Said test doesn't need its own close callback, it can piggyback on the common close callback. commit ccb96b67dfddfbb21faf0a48a080c0ee79ac16ba Author: Ben Noordhuis Date: Sun Jan 6 22:06:10 2013 +0100 test: remove unused function declaration commit 847182cdf1a4fd3cf2f6cecac53ab12e138347e7 Author: Ben Noordhuis Date: Sun Jan 6 21:50:00 2013 +0100 test, bench: make functions/variables static Make functions and variables that are local to the compilation unit static. Remove what turns out to be unused. commit 7ff6f29b85484c20040dbdccaa8faaf3026a9ccb Author: Ben Noordhuis Date: Sun Jan 6 20:01:22 2013 +0100 test, bench: ANSI-fy function prototypes Replace `void f()` with `void f(void)`; the former means "a function that takes any number of arguments, including none" while the latter is what is actually intended: a function taking no arguments. The first form also isn't strictly conforming ANSI/ISO C. commit fa9c577e55d7c845d0134acf13b10035b8e2b492 Author: Ben Noordhuis Date: Sun Jan 6 21:46:08 2013 +0100 linux: fix race in uv_resident_set_memory() uv_resident_set_memory() used a global buffer to read data into, which is a decidedly unsafe thing to do in a multi-threaded environment. commit 5b63285805c82af043ba72bef4455aa3a98b20e2 Author: Ben Noordhuis Date: Sun Jan 6 20:21:13 2013 +0100 unix, windows: ANSI-fy uv_tty_reset_mode() prototype commit edd10071eb86cdc741c6652a38eff0b4d6be561e Author: Ben Noordhuis Date: Sun Jan 6 21:41:12 2013 +0100 unix: fix up #if defined checks `#if FOO` (where FOO is undefined) is a legal construct in C89 and C99 but gcc, clang and sparse complain loudly about it at higher warning levels. Squelch those warnings. Makes the code more consistent as well. commit e62dd3caa0679e44d6d78d020ee2858ee279e571 Author: Ben Noordhuis Date: Sun Jan 6 20:19:52 2013 +0100 unix: fix include in cygwin.c commit a2bedc0a7ea3ead6712f00777a10435040947c93 Author: Ben Noordhuis Date: Sun Jan 6 20:02:49 2013 +0100 unix: make uv__read_start_common() static commit 35b159a83e659b818cea1584e27a4e36c8207216 Author: Ben Noordhuis Date: Sun Jan 6 19:49:10 2013 +0100 unix: make uv__work_cancel() static commit 0a06c2f3b2f42e9a9ae57331d9d5d68e54f00670 Author: Ben Noordhuis Date: Sun Jan 6 19:45:11 2013 +0100 unix: fix up function prototypes in signal.c commit 87cbf8d0c2cbf438dabb3620c06997ebe27f71f4 Author: Ben Noordhuis Date: Sun Jan 6 19:43:37 2013 +0100 unix: remove unused function uv__strlcpy() commit 345eb6394f47d3429805c8e595cf5c607929e2da Author: Ben Noordhuis Date: Sun Jan 6 21:07:46 2013 +0100 unix: add checksparse.sh script commit 1f52fc1c5a3961329530810327c7f69f6e022c8a Author: Ben Noordhuis Date: Sun Jan 6 19:19:20 2013 +0100 test: remove consumer_producer test It fails intermittently on Travis for no other reason than that Travis is occasionally slow. Reduce the number of false positives, remove the test. commit 2f55353490506ed08709c65205bedeb67342b194 Author: Ben Noordhuis Date: Sun Jan 6 17:55:51 2013 +0100 unix: update loop->time after poll Fixes a bug where timers expire prematurely when the following conditions hold: a) libuv first spends some time blocked in the platform poll function b) a callback then calls uv_timer_start() Cause: uv_timer_start() uses an out-of-date loop->time in its 'when should the timer callback run?' calculations. Solution: Update loop->time before invoking any callbacks. Fixes #678. commit 339033afc01d7ddc14ed3cca1c660c6f8b5e520d Author: Ben Noordhuis Date: Sun Jan 6 17:25:59 2013 +0100 unix: use uv__hrtime() internally This commit renames the various uv_hrtime() implementations to uv__hrtime(). Libuv uses the high-res timer internally in performance-critical code paths. Calling the non-public version avoids going through the PLT when libuv is compiled as a shared object. The exported uv_hrtime() now has a single definition in src/unix/core.c that calls uv__hrtime(). A future optimization is to lift the uv__hrtime() declarations into header files so they can be inlined at the call sites. Then again, linking with -flto should accomplish the same thing. commit ba83510fc0f7c4a1f1d236dfa584ba55b30e95c6 Author: Fedor Indutny Date: Wed Jan 2 12:53:18 2013 +0400 stream: fix infinite select() polling on osx Interruption FD buffer should be emptied after write, otherwise select() loop will poll indefinitely. commit 775f2c1f539c783728f7e4dd039f5e6c6f794fb9 Author: Ben Noordhuis Date: Wed Jan 2 17:47:37 2013 +0100 unix: remove stale closing check in uv__write() Introduced in 0db3274f but no longer necessary; uv__write() no longer runs when the handle has been closed. Write callbacks receive a special status code that informs them that the handle has been closed. commit a657e7f5760add177e8eae59dbed3cd14cc2ee1e Author: Ben Noordhuis Date: Wed Jan 2 17:45:37 2013 +0100 unix: remove uv_write_queue_head() commit 0b3ab72579458bb68e810b3bd257efe05d6f275d Author: Ben Noordhuis Date: Wed Jan 2 17:15:52 2013 +0100 unix: remove bogus uv__write() comment commit 546387fc47fc0a789eeec97b7f71bcf0c00a7108 Author: Ben Noordhuis Date: Fri Dec 28 22:17:51 2012 +0100 include: add note about SIGRT0 and SIGRT1 on linux commit 92a19a19dd87f7dfeaf7aaf893099d0afd4a182f Author: Ben Noordhuis Date: Fri Dec 28 15:10:04 2012 +0100 unix: ensure done_cb gets called after uv_cancel() Wake up the event loop with uv_async_send() when a request is cancelled. Ensures the done_cb is run on the next tick of the event loop. Not sending a wakeup signal results in the done_cb not getting called until another request completes, which may be a long time coming when it's the only request in the queue or when other requests are executing long-running jobs. Fixes #669. commit 9614d5113526ba82bc8522b0b1c9a119e45932d3 Author: Saúl Ibarra Corretgé Date: Thu Dec 27 23:15:40 2012 +0100 unix: reset errno when using sendfile emulation A common way to check if a uv_fs_t request failed is to check that req->errorno != 0. With uv_fs_sendfile(), when the sendfile() syscall fails, req->errorno is set to (for example) ENOTSOCK, even when the emulation code path succeeds. Zero errno before the call to uv__fs_sendfile_emul() to prevent that from happening. commit 69ab328d9f387d029272fa4aee06ea72e7c9878e Author: Ben Noordhuis Date: Thu Dec 27 13:04:03 2012 +0100 sunos: fix !defined(PORT_SOURCE_FILE) build commit 3164f1ea69277ff42d959c9f3554406160db2976 Author: Ben Noordhuis Date: Tue Dec 25 21:51:15 2012 +0100 include: update uv_signal_t doc comments Fixes #668. commit 495ac8340285594aacaab4d9857b4f8eb1aa605c Author: Ben Noordhuis Date: Mon Dec 24 23:34:58 2012 +0100 build: export _DARWIN_C_SOURCE to dependents Exporting just _POSIX_C_SOURCE=200112 hides SysV / BSD definitions like S_IREAD and S_IWRITE. Exporting _DARWIN_C_SOURCE fixes that. Issue reported by Travis Tilley. commit 4650a5971b8229f612e057e7835865b487724206 Author: Saúl Ibarra Corretgé Date: Mon Dec 24 12:55:28 2012 +0100 unix: don't run loop when all handles are unref'd commit 33d5c497a6fdd0815144ff61f3d28f33281a11ba Author: Saúl Ibarra Corretgé Date: Fri Nov 30 00:32:04 2012 +0100 prepare/idle/check: don't allow NULL callback commit 5af43ba446d68b5d26c48facdc1905454d185b49 Author: Ben Noordhuis Date: Mon Dec 24 12:03:41 2012 +0100 bench: add 'million async handles' benchmark commit 1c722d6c222d80e550d948a77f318083e69efdc4 Author: Ben Noordhuis Date: Mon Dec 24 12:03:25 2012 +0100 test: make fmt() not leak memory commit 4b115f89bf54275ea695df2b872f34567b993ff3 Author: Vlad Tudose Date: Tue Dec 18 20:13:10 2012 +0200 build: build libuv.a and libuv.so in different dirs Fixes #659. commit 6fb31493d76381bd0e597400da65cbfd33b89ff9 Author: Ben Noordhuis Date: Wed Dec 19 15:29:27 2012 +0100 build: export _POSIX_C_SOURCE=200112 to dependents Fix direct_dependent_settings to export _POSIX_C_SOURCE=200112 to dependent projects. Required to make pthread_rwlock_t and pthread_barrier_t visible. commit 0820be70084a44792d96cfbd80b6e97159c44439 Author: Saúl Ibarra Corretgé Date: Tue Dec 18 16:10:11 2012 +0100 Implemented uv_run2 Allows for running the event loop in 3 modes: * default: loop runs until the refcount drops to zero * once: poll for events only once and block until one is handled * nowait: poll for events only once but don't block if there are no pending events commit dc559a5ce69cef28e1c73a3782c17b5801989e67 Author: Ben Noordhuis Date: Tue Dec 18 15:35:42 2012 +0100 unix: disable relaxed accept() by default Don't use the relaxed accept() algorithm introduced in be2a217 unless explicitly requested. It causes a 50+% performance drop on some node.js benchmarks: $ alias bench='out/Release/node benchmark/http_simple_auto.js \ -c 10 -n 50000 bytes/1 2>&1 | grep Req' $ UV_TCP_SINGLE_ACCEPT=0 bench Requests per second: 12331.84 [#/sec] (mean) $ UV_TCP_SINGLE_ACCEPT=1 bench Requests per second: 3944.63 [#/sec] (mean) commit b86ed94940f85b60f033c1f4a0c015a6d4de297c Author: Fedor Indutny Date: Mon Dec 17 17:03:44 2012 +0400 kqueue: ignore ENOENT error File descriptor might be closed during callback, all events that was reported before the callback are not valid and trying to remove them will result in ENOENT. This error can be safely ignored. commit 273cecc56ff54d1c6f2537d61838052719db0cb9 Author: Ben Noordhuis Date: Sat Dec 15 21:13:41 2012 +0100 unix: don't memset(0) in uv_udp_init() It's inconsistent with other init functions. In particular, it clobbers the data field. Fixes #655. commit c6c5b7a901d26b727acf6cdc7e6c970b18310248 Merge: a3b57dd 4997738 Author: Ben Noordhuis Date: Fri Dec 14 12:07:31 2012 +0100 Merge branch 'v0.8' commit 49977386e93dcdf7c0f0044a491c98d551f61db4 Author: Andrew Shaffer Date: Wed Dec 12 19:47:58 2012 -0800 sunos: properly disarm PORT_LOADED fsevent watcher Fixes a segmentation fault when the watched entity is changed after the watcher has been closed. commit a3b57dd5987cf6637e477443c4bb761c6e9c2f9b Author: Ben Noordhuis Date: Fri Dec 14 11:45:39 2012 +0100 test, bench: remove unused includes commit f5b6374948447c6ee5cf399d6b50a1e4d8a11723 Author: Ben Noordhuis Date: Fri Dec 14 11:36:17 2012 +0100 test, bench: replace strlen() with sizeof() commit 0a05b31a9300477bede0278fdfc540802a10d1d7 Author: Ben Noordhuis Date: Fri Dec 14 11:34:17 2012 +0100 test: fix -Wunused-result warnings commit e079a99abddb30a7f935792eda003b5ce37b396b Author: Ben Noordhuis Date: Thu Dec 13 16:37:12 2012 +0100 unix: fix event loop stall Fix a rather obscure bug where the event loop stalls when an I/O watcher is stopped while an artificial event, generated with uv__io_feed(), is pending. commit 92fb84b751e18f032c02609467f44bfe927b80c5 Author: Ben Noordhuis Date: Wed Dec 12 15:12:20 2012 +0100 unix: rework uv_cancel() api Bert Belder informs me the current approach where a request is immediately cancelled, is impossible to implement on Windows. Rework the API to always invoke the "done" callback with an UV_ECANCELED error code. commit 731adacad2426d349d4c51ca608184f7e01c93c6 Author: Fedor Indutny Date: Thu Aug 16 20:26:35 2012 +0700 unix: use select() for specific fds on OS X kqueue(2) on osx doesn't work (emits EINVAL error) with specific fds (i.e. /dev/tty, /dev/null, etc). When given such descriptors - start select(2) watcher thread that will emit io events. commit 52c8a8617de020a14b87477a15ddaf107ff34445 Author: Ben Noordhuis Date: Mon Nov 26 03:12:38 2012 +0100 unix: add uv_cancel() commit a385ae4f59aeb10b24e60c3d6880a38a645635bd Author: Ben Noordhuis Date: Sun Dec 9 13:21:20 2012 +0100 unix: only set SO_REUSEADDR on tcp listen sockets Avoid the extra syscall, it's a no-op for non-listening sockets. At least, it should be - it remains to be investigated if a FreeBSD kernel bug affects ephemeral port allocation inside connect(). See [1] for details. [1] http://www.freebsd.org/cgi/query-pr.cgi?pr=174087 commit b4168cd697380af2526ec2f0f02e3d28253bf4ae Author: Ben Noordhuis Date: Sat Dec 8 08:06:09 2012 +0100 build: rename LINKFLAGS to LDFLAGS commit 7306c5ff46e165d5fafaace99fc0259bfd3ec17c Author: Ben Noordhuis Date: Sat Dec 8 08:00:03 2012 +0100 build: fix `make libuv.so CFLAGS=` Running a make target that builds the shared object while overriding the CFLAGS variable from the command line, would fail with a relocation error: relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC Fix that by adding -fPIC unconditionally. commit 527a10f904286c3b28df85308f28181131475b64 Author: Bert Belder Date: Tue Dec 4 14:04:37 2012 +0100 windows: improve / fix uv_interface_addresses * If GetAdaptersAddresses() failed, it would return UV_OK nonetheless, but the `adresses` and `count` out parameters would not be set. * When adapters were enabled or added in between the two GetAdaptersAddresses() calls, it would fail. * In case of an out of memory situation, libuv would crash with a fatal error. * All interface information is now stored in a single heap-allocated area. commit c7fca7ad848da7d30f2859bd8fdec5bb454454d5 Author: Bert Belder Date: Mon Dec 3 17:03:22 2012 +0100 windows: add some error code mappings commit 2e4488f35af8e9a0ae07418c162c905aa8ea8ceb Author: Bert Belder Date: Tue Dec 4 14:04:37 2012 +0100 windows: improve / fix uv_interface_addresses * If GetAdaptersAddresses() failed, it would return UV_OK nonetheless, but the `adresses` and `count` out parameters would not be set. * When adapters were enabled or added in between the two GetAdaptersAddresses() calls, it would fail. * In case of an out of memory situation, libuv would crash with a fatal error. * All interface information is now stored in a single heap-allocated area. commit 0f0fee548cab8b5f88c031fe72cc52cac65c3ca4 Author: Bert Belder Date: Mon Dec 3 17:03:22 2012 +0100 windows: add some error code mappings commit 44f0fcd033faf56d50dcf638a1e535e7918ea65c Merge: 99a8d4a deb1c34 Author: Ben Noordhuis Date: Thu Nov 29 23:34:43 2012 +0100 Merge branch 'v0.8' Conflicts: src/unix/core.c commit deb1c34774e19272cfed683697c6961726582555 Author: Ben Noordhuis Date: Thu Nov 29 23:24:25 2012 +0100 sunos: fix uv_getaddrinfo() NULL pointer dereference commit 99a8d4a8c2aba74e541707ca8ab10d96bdc3a190 Author: Ben Noordhuis Date: Thu Nov 29 16:51:01 2012 +0100 unix: remove unnecessary static var init wq doesn't have to be initialized, init_once() takes care of that. Remove the initialization so it goes into .bss instead of .data. commit fa11db905a01f95fc01833d94987fe5790796745 Author: Shigeki Ohtsu Date: Mon Nov 26 11:35:29 2012 +0900 test: fix finished consumer number check commit 2be240d3cd938c95699de5cc71963b1fcc47de4d Author: Ben Noordhuis Date: Thu Nov 29 15:34:33 2012 +0100 unix: initialize thread pool mutex and condvar It accidentally worked before this commit on Linux but not on OS X. Fixes #637. commit 3a3025861673472b877ae0e60f8ae4e441c38266 Author: Ben Noordhuis Date: Thu Nov 29 15:22:39 2012 +0100 windows: fix uv_backend_fd() return value uv__new_artificial_error() returns a uv_err_t, not an int, and we can't use uv__set_artificial_error() because the uv_loop_t argument is const. commit df1399fa758e34bf1d4c2c1c0e624a96a983857b Author: Ben Noordhuis Date: Wed Nov 28 21:32:04 2012 +0100 Remove *.mk and *.Makefile from .gitignore list The *.mk and *.Makefile files generated by gyp are stored in $TOPLEVEL/out now. Fixes #636. commit 4a69c4bb5f2ba4c26512ac5828fff1201e0a7152 Author: Ben Noordhuis Date: Wed Nov 28 17:01:04 2012 +0100 unix: change uv_backend_timeout() prototype * change return value to signed int * constify loop argument commit 09a7f85b704f5053ca8c7f74c0f469921262743a Author: Fedor Indutny Date: Mon Nov 26 14:20:11 2012 +0400 unix: add uv_backend_fd() and uv_backend_timeout() This can be used in conjuction with uv_run_once() to poll in one thread and run the event loop's event callbacks in another. Useful for embedding libuv's event loop in another event loop. commit 5d92ccce9466dbfe8a613d0ee5ded1a959014554 Author: Shane Holloway Date: Tue Nov 27 16:48:01 2012 +0100 windows: add flag for hiding windows created by a spawned process Closes GH-627 commit 99d3102b90f135e4560217131512948e74060d16 Author: Ben Noordhuis Date: Mon Nov 26 02:07:25 2012 +0100 unix: drop pthread dependency in threadpool.c Replace the pthread code with their libuv counterparts. One step closer to a shared thread pool implementation. commit 0cca5391ba8513d22f1c9cdc4a462f6dfd7230c5 Author: Shigeki Ohtsu Date: Sat Nov 24 08:25:32 2012 +0900 unix, windows: disallow NULL worker in thread pool See #629. commit 90271e1a3cf69cb56b55b37712d84b17e375cea2 Author: Ben Noordhuis Date: Thu Nov 22 17:51:54 2012 +0100 darwin, freebsd: set SO_NOSIGPIPE on sockets Suppresses delivery of SIGPIPE signals when the remote end of the socket has gone away. commit dcd3b55c1990342054083272f3ad7f866832d270 Author: Ben Noordhuis Date: Thu Nov 22 15:01:15 2012 +0100 unix: fix thread pool race condition Send the wakeup signal to the main thread *before* releasing the lock. Doing it the other way around introduces a race condition where the watcher may already have been pulled off the work queue. commit 5639b2f1f904893987cf3bdc965bc24c66b4c6e2 Author: Ben Noordhuis Date: Sat Oct 20 23:58:22 2012 +0200 linux: use /proc/cpuinfo for CPU frequency Obtain the CPU frequency from /proc/cpuinfo because there may not be any cpufreq info available in /sys. This also means that the reported CPU speed from now on is the *maximum* speed, not the *actual* speed the CPU runs at. This change only applies to x86 because ARM and MIPS don't report that information in /proc/cpuinfo. Fixes #588. This is a back-port of commit 775064a from the master branch. commit fc5984fb45b2d23b3985cf56f33d517fbc86e742 Author: Ben Noordhuis Date: Tue Nov 20 02:38:01 2012 +0100 build: fix dragonflybsd gyp build Depends on a not-yet-landed gyp patch: https://codereview.chromium.org/11348152/ commit d8a8379751ffc5ea4d4c0b5e15398de5f922ae19 Author: Ben Noordhuis Date: Tue Nov 20 00:42:47 2012 +0100 test: disable fs event test on dragonflybsd Disable the fs_event_close_in_callback test on DragonFlyBSD, like we do on the other BSDs. The test doesn't work with kqueue-based file notifications, the event is generated before the file is watched. Maybe we should remove it altogether. commit e997dd5981024a5af13abea5592f1cc5572e43b0 Author: Ben Noordhuis Date: Tue Nov 20 00:38:24 2012 +0100 dragonflybsd: fix uv_fs_futime() commit 5aa62980995ec912ac94634c7e8acc199178ea12 Author: Ben Noordhuis Date: Tue Nov 20 00:26:56 2012 +0100 dragonflybsd: make uv_cpu_info() less broken commit 172d495bb8ca92494045382e3c516f706ab008de Author: Ben Noordhuis Date: Mon Nov 19 23:57:27 2012 +0100 build: fix dragonflybsd build, link with libkvm commit 3e9344fd3464035e774a370b1ceaa06eafe45e89 Author: Ben Noordhuis Date: Mon Nov 19 23:53:41 2012 +0100 build: remove unused EV_CONFIG var commit 190db15638ef7f9eebf0b5160313991898480d7f Author: Ben Noordhuis Date: Mon Nov 19 03:57:24 2012 +0100 unix: set proper loop errno for udp write req cb Harmonize with stream.c and tcp.c: when a handle is closed that has pending writes queued up, run the callbacks with loop->err.code set to UV_ECANCELED, not UV_EINTR. commit 665a316aa9d551ffdd00d1192d0c3d9c88d7e866 Author: Ben Noordhuis Date: Thu Aug 23 01:57:30 2012 +0200 unix: remove libev commit 65bb6f068e607558b2e1c65b8e374bd2144c8d4e Author: Ben Noordhuis Date: Thu Nov 15 23:53:18 2012 +0100 unix: rename UV__IO_* constants commit 1282d64868b9c560c074b9c9630391f3b18ef633 Author: Ben Noordhuis Date: Thu Aug 23 01:14:41 2012 +0200 unix: remove dependency on libev commit 59a2c639316bd23f738c78147dd79ad4b61b3cf1 Author: Ben Noordhuis Date: Thu Nov 15 22:58:14 2012 +0100 bench: remove dead and buggy code Pipe accept benchmarks have never been implemented, remove the code path. Said code path also contained a bug: it tried to bind to the same pipe that is bound to a few lines down. commit a28bc887080a1f511a82a62d0ef2cc3ab0df38f5 Author: Ben Noordhuis Date: Thu Nov 15 22:16:08 2012 +0100 bench: print benchmark name in async/async_pummel commit 05aac92913dd40340c8d4f46327fa8f23402f341 Author: Stephen Gallagher Date: Thu Nov 15 12:04:11 2012 -0500 include: export uv_inet_* functions commit c252bcb3f02d2faf54f8a241c60f36d97495bcbc Author: Ben Noordhuis Date: Wed Nov 14 01:35:27 2012 +0100 bench: fix loop starvation bug Don't keep writing until the write queue fills up. On fast systems (mine), that never happens - the data is sent out as fast as the benchmark generates it. commit 72955c29c21c889dbb03ec2c7f490d27cc5abd1d Author: Ben Noordhuis Date: Wed Nov 14 01:06:03 2012 +0100 windows: map WSAESHUTDOWN to UV_EPIPE This is a back-port of commit 483043b from the master branch. commit 09b022232aaddce1ee9def7092538734415f386c Author: Ben Noordhuis Date: Tue Nov 13 16:05:38 2012 +0100 bench: report proper benchmark name commit b9c8d196379dc28a9ed503a2695581d6698ba466 Author: Ben Noordhuis Date: Tue Nov 13 15:56:46 2012 +0100 bench: close timer handles before deleting loop Fixes a segmentation fault / use-after-free. commit 3243e9ae673bf7e3c2b19bc1b0d2c61cbc535fb5 Author: Ben Noordhuis Date: Mon Nov 12 17:50:29 2012 +0100 test: fix (harmless) typo in function name commit 625340066ebad876bb46ff3165b3b6fb23168dc0 Author: Ben Noordhuis Date: Sun Nov 11 01:16:51 2012 +0100 test: fix close of uninitialized handle The test closes all handles after 1000 ms but the remote peer handle may not have been initialized by then (very unlikely but not quite impossible). commit 0a7e36dcf1fa3d8669556eb0d88577116c9330d2 Author: Ben Noordhuis Date: Sat Nov 10 18:50:57 2012 +0100 test: add UV_RUN_AS_ROOT check commit 62332ea09049b6db94c019856714dcaf10434aee Author: Ben Noordhuis Date: Sat Nov 10 01:31:52 2012 +0100 build: fix `make test` on darwin and sunos commit f352e40e00a4f7b27e77f2d3e22bed3461a891c1 Merge: bef3ea4 deeec42 Author: Ben Noordhuis Date: Fri Nov 9 20:39:52 2012 +0100 Merge branch 'v0.8' Conflicts: test/test-spawn.c uv.gyp commit deeec421afed1fa44961204d2e0a17134f3ea02a Author: Ben Noordhuis Date: Fri Nov 9 20:20:50 2012 +0100 build: use link_settings, fix typo * Use link_settings instead of direct_dependent_settings. * Fix typo: s/ldlags/ldflags/ Pointed out by a certain R.L. Dahl of San Francisco, CA. Fixes #618. commit bef3ea48184b0d6b68e7636e21e72a07a66eefe9 Author: Ben Noordhuis Date: Fri Nov 9 03:51:47 2012 +0100 bench: squelch -Wstrict-aliasing warnings commit d6b7fe0e3b02bae7f8ca73706522755bb35ae699 Author: Ben Noordhuis Date: Fri Nov 9 03:21:00 2012 +0100 unix: squelch -Wunused-but-set-variable warnings commit 20eaa84c4fe94525cbc9bca06ad0cf71d2854ad9 Author: Ben Noordhuis Date: Fri Nov 9 02:15:17 2012 +0100 build: link test runner with -rpath Link the test runner with -rpath=/path/to/libuv.so, don't muck around with LD_LIBRARY_PATH. commit 2d1f17fecbdc40370e9daa39dc351fcd5e47164c Author: Ben Noordhuis Date: Fri Nov 9 01:57:58 2012 +0100 test: work around valgrind bug commit 43d52c77baa48263543d685d0de8504005cd83ca Author: Ben Noordhuis Date: Thu Nov 8 18:28:16 2012 +0100 test: make `make test` link against .so commit cc36fd036606a3dec452b6e40ded41db6e5bf322 Author: Ben Noordhuis Date: Thu Nov 8 18:06:14 2012 +0100 build: support building a .so This commit adds support to the regular Makefile as opposed to the gyp build. commit d56434a21d9e972df1303495440f3bc4f0476da2 Author: Ben Noordhuis Date: Tue Nov 6 16:24:49 2012 -0500 build: support building a .so You can now select to build a shared object at configure time: $ ./gyp_uv -Dcomponent=shared_library -Dlibrary=shared_library And build it with: $ make -C out BUILDTYPE=Debug # or BUILDTYPE=Release Or, if you use ninja: $ ninja -C out/Debug commit e318b06a0ef58b09273e06dfd025fd8a2af9ed1a Author: Stephen Gallagher Date: Wed Nov 7 10:04:04 2012 -0500 include: split off libev function prototypes This patch creates a new header - ev-proto.h - which contains all of the protoypes for libev functions. This allows us to create a shared object of libuv without exposing libev internal functions. commit 91faa3e688484783b720c66ce48e3d2404e0aeb7 Author: Ben Noordhuis Date: Wed Nov 7 16:12:22 2012 +0100 test: fix compiler warning Fix the following warning by not using a static variable: test/test-fs-poll.c:79: warning: ‘static’ is not at beginning of declaration commit a7cedbe2204b410414e2f17f00c698d2be2f66ed Author: Ben Noordhuis Date: Wed Nov 7 16:10:55 2012 +0100 darwin: fix uv_hrtime() thread safety issue commit 0097280624a81715a543c3a7076d2011e2daf846 Author: Bert Belder Date: Wed Nov 7 11:10:43 2012 +0100 windows: map ERROR_GEN_FAILURE to UV_EIO commit f372fd4b13cea4c40c82c0544560807ad15e8641 Author: Bert Belder Date: Wed Nov 7 11:10:43 2012 +0100 windows: map ERROR_GEN_FAILURE to UV_EIO commit a320d464409b5008d920c7c78caf413d94e265aa Author: Ben Noordhuis Date: Tue Nov 6 21:41:21 2012 +0100 test: fix type casting style issue commit 2affa60e19f6fa56166f63003285156a2ff0dfc0 Author: Ben Noordhuis Date: Tue Nov 6 00:31:16 2012 +0100 test: remove unnecessary #ifdef _WIN32 This is a back-port of commit 4d17337 from the master branch. commit 7759bd63cdad2e2b6065fe0786dff66afe761373 Author: Ben Noordhuis Date: Tue Nov 6 00:31:16 2012 +0100 test: remove unnecessary #ifdef _WIN32 commit 4c9e42d0e6462597aedd1cce885394cf0a2e4edf Author: Bert Belder Date: Mon Nov 5 22:11:22 2012 +0100 windows: un-break the build It was broken in fb64948. commit 6620e614aca1dd8303bbd5605a5bee000d93d00a Author: Bert Belder Date: Mon Nov 5 22:11:22 2012 +0100 windows: un-break the build It was broken in 1d85815. commit 0ddf9d6b98c32254b577d3d8516f7ba674222557 Author: Ben Noordhuis Date: Sun Nov 4 01:17:22 2012 +0100 Revert "unix: use select() for specific fds on OS X" This reverts commit 5da380a5ca7f9ef02667ef3021fc97428df0b478. Contains a bug that effectively makes the select() thread busy-loop. The file descriptor is polled for both reading and writing, regardless of what events the main thread wants to receive. Fixing that requires proper synchronization between the two threads. See #614. commit 20bb1bfd70499866acb64ea958b7d192b00120a2 Author: Ben Noordhuis Date: Sun Nov 4 01:07:14 2012 +0100 Revert "unix: reopen tty as /dev/tty" This reverts commit 31f9fbce6321e2a26ab6d6c2d404aba1a7f161a7. The reverted commit depends on commit 5da380a ("use select() for specific fds on OS X") which polls /dev/tty file descriptors in a separate thread to work around deficiencies in the kqueue API on OS X. Unfortunately, 5da380a has a bug that effectively makes the select() thread busy-loop. Revert this commit for now. commit b5fc9444b1276aba53d3730b3f515a5ab5653027 Author: Ben Noordhuis Date: Sun Nov 4 00:56:40 2012 +0100 build: export _LARGEFILE_SOURCE, _FILE_OFFSET_BITS Export compile-time defines that influence the size of struct stat. This should avoid sizeof(struct stat) mismatches between libuv and dependent projects. On OS X, _DARWIN_USE_64_BIT_INODE=1 is also exported. commit 914185d6fc2ffd899c9c1ce4b52e1bf6d75ce6aa Author: Ben Noordhuis Date: Sat Nov 3 02:06:37 2012 +0100 unix: make some internal methods static commit fb649487465d8ed5504302649b69fc72c879acc1 Author: Charlie McConnell Date: Thu Nov 1 10:55:06 2012 -0400 unix: do not set environ unless one is provided Currently, `uv_spawn` will set `environ` to the value of `options.env`, even if `options.env` is `NULL`. This results in child processes for whom `environ == NULL`, which can cause a variety of unexpected issues. This is a back-port of commit 1d85815 from the master branch. commit 1d858156b431f2e4952dc79049cfd34947b805d1 Author: Charlie McConnell Date: Thu Nov 1 10:55:06 2012 -0400 unix: do not set environ unless one is provided Currently, `uv_spawn` will set `environ` to the value of `options.env`, even if `options.env` is `NULL`. This results in child processes for whom `environ == NULL`, which can cause a variety of unexpected issues. commit dcce1eab3b02f7b0430e5349465fc0025b8a8b52 Author: Ben Noordhuis Date: Fri Nov 2 14:34:28 2012 +0100 test: fix -Wmissing-field-initializers warnings commit 894a8523cb0b363dbcca404a758d1af551298e3c Author: Ben Noordhuis Date: Fri Nov 2 14:32:14 2012 +0100 test: fix signed/unsigned comparison warnings commit 9c7ae2e7a334d48909f5f6cfd873db968431a4d5 Author: Ben Noordhuis Date: Fri Nov 2 14:15:07 2012 +0100 darwin: don't use deprecated AbsoluteToNanoseconds commit be597ba6257c70f522f3246772f88d4308a0e2a0 Author: Ben Noordhuis Date: Fri Nov 2 12:00:28 2012 +0000 unix: set req type to UV_FS commit b0bcbdfe81c6343f64d83b3ba717d49714196d4d Author: Ben Noordhuis Date: Thu Nov 1 15:51:04 2012 +0100 unix: NULL pipe_fname in uv__pipe_close() Pro-actively avoid use-after-free errors, set the pipe_fname field to NULL. commit b8aa5b9bf25648395050d9ec20d488a24306a3d8 Author: Ben Noordhuis Date: Thu Nov 1 15:29:00 2012 +0100 test: don't assert on UV_EPIPE in echo-server.c UV_EPIPE is not an error per se, it simply indicates that the other end of the connection - i.e. the test case - has gone away. Pro-actively ignore UV_ECANCELED errors. They're not actually emitted right now because there's only ever one pending write but let's be forward compatible. commit 225c6f1719603cdc737247a19469db1bea4fde52 Author: Ben Noordhuis Date: Thu Nov 1 14:49:19 2012 +0100 unix, windows: fix several error messages commit 0d5d6504e58854604a6f27ce06b765d1eb79731b Author: Ben Noordhuis Date: Thu Nov 1 14:03:38 2012 +0100 unix, windows: fix EAGAIN error message commit 97c527ac4372e4548e7a9fde1d97bea89f76c019 Author: Leonard Hecker Date: Thu Oct 25 17:48:17 2012 +0200 darwin: make it possible to compile for iOS Relocate the include of TargetConditionals.h and fixe the use of TARGET_OS_IPHONE. Furthermore, uv__fsevents_init() and uv__fsevents_close are now empty functions for iOS, since the FSEvents API is not available there. commit 149b16f1232d8fdcf5436534d6ade6f9877e1b8f Author: Bert Belder Date: Thu Oct 25 15:10:16 2012 +0200 windows: closing handles should always keep the loop alive This makes the tcp-ref2 and udp-ref2 tests pass again. Also adds another reference count test. commit 6150feda56193e2b228fe893fcf79980d8586bf4 Author: Ben Noordhuis Date: Thu Oct 25 12:49:30 2012 +0200 unix: fix ‘fd’ undeclared build error Reapplies commit b5028c5b, failed to merge in 5cb4197. commit 5cb4197debf531183808ad3188d0638bd9ffa9df Merge: 0dbab84 f43ad85 Author: Ben Noordhuis Date: Thu Oct 25 04:43:19 2012 +0200 Merge branch 'v0.8' commit f43ad85eddf708bb1c1d87cd6a1e7e60a9191dd6 Author: Ben Noordhuis Date: Thu Oct 25 04:26:56 2012 +0200 include: fix ngx_queue_foreach() macro Guard against the possibility that the queue is emptied while we're iterating over it. Simple test case: #include "ngx-queue.h" #include int main(void) { ngx_queue_t h; ngx_queue_t v[2]; ngx_queue_t* q; unsigned n = 0; ngx_queue_init(&h); ngx_queue_insert_tail(&h, v + 0); ngx_queue_insert_tail(&h, v + 1); ngx_queue_foreach(q, &h) { ngx_queue_remove(v + 0); ngx_queue_remove(v + 1); n++; } assert(n == 1); // *not* 2 return 0; } Fixes #605. commit 0dbab845292c742085797dbbb4b5696d7bd5b20e Author: Bert Belder Date: Wed Oct 24 21:36:02 2012 +0200 benchmark: async_pummel should not call uv_async_send on closed handle This fixes an assertion that triggered in debug builds on Windows. commit a54b9e292164473f4553881acc66f20a4f3fbd61 Author: Bert Belder Date: Wed Oct 24 21:34:32 2012 +0200 benchmark: timed_udp_pummel should not write to closed udp handle This fixes intermittent assertion failures when running the benchmark. commit 31f9fbce6321e2a26ab6d6c2d404aba1a7f161a7 Author: Ben Noordhuis Date: Wed Oct 24 03:32:28 2012 +0200 unix: reopen tty as /dev/tty Reopen the file descriptor when it refers to a tty. This lets us put the tty in non-blocking mode without affecting other processes that share it with us. Fixes #601. commit b7f38b1e5384ee8d6d871ef60babf0305f0bc7af Author: Ben Noordhuis Date: Wed Oct 24 14:54:14 2012 +0200 Revert "unix: avoid iterating over all async handles" This reverts commit 209abbab27abdc63200cbd707f72fed4245ab4d0. Fixes the following SIGSEGV: (gdb) f 1 #1 0x00007fc084683aec in uv__async_io (loop=0x7fc0848e0b40, handle=0x7fc0848e0c78, events=1) at src/unix/async.c:175 175 ASYNC_CB(h) (gdb) list 170 171 /* If we need to sweep all handles anyway - skip this loop */ 172 if (!loop->async_sweep_needed) { 173 for (i = 0; i < end; i += sizeof(h)) { 174 h = *((uv_async_t**) (buf + i)); 175 ASYNC_CB(h) 176 } 177 } 178 179 bytes -= end; (gdb) print *h $1 = {close_cb = 0x184e1b0, data = 0x18d9520, loop = 0x7fc0848e0b40, type = 49, handle_queue = {prev = 0x18dae10, next = 0x7860c0}, flags = 32, next_closing = 0x1863b40, pending = 0, async_cb = 0x31, queue = {prev = 0x18dae50, next = 0x7860c0}} (gdb) It looks like the async handle gets closed or otherwise becomes invalid before the sweep is executed. Fixes #603. commit 61ecb3415d0d3f53f25d937cf344fd6a20bcf25e Author: saghul Date: Tue Oct 23 22:33:28 2012 +0200 win: support compilation with Visual Studio 2008 commit c2478b26692363a4495c3d72e72977bbf90120fe Author: Ben Noordhuis Date: Mon Oct 22 13:35:53 2012 +0200 linux: update comm field in uv_set_process_title() Makes the new process name visible in both `ps` and `ps a`, with the caveat that `ps` will only print the first 16 characters. Before this commit, `ps` kept reporting the old process name. commit 775064a3a540689db1d5a8f95f5a17e90dc8d347 Author: Ben Noordhuis Date: Sat Oct 20 23:58:22 2012 +0200 linux: use /proc/cpuinfo for CPU frequency Obtain the CPU frequency from /proc/cpuinfo because there may not be any cpufreq info available in /sys. This also means that the reported CPU speed from now on is the *maximum* speed, not the *actual* speed the CPU runs at. This change only applies to x86 because ARM and MIPS don't report that information in /proc/cpuinfo. Fixes #588. commit 1bb1ba27ddfadc40986d35b7c2067a73c3cf1e14 Author: Ben Noordhuis Date: Sat Oct 20 23:36:00 2012 +0200 unix: fix compiler warning in async.c Include missing header. Fixes the following compiler warning: src/unix/async.c:182:7: warning: implicit declaration of function ‘memmove’ [-Wimplicit-function-declaration] commit 209abbab27abdc63200cbd707f72fed4245ab4d0 Author: Fedor Indutny Date: Thu Oct 18 15:23:51 2012 +0700 unix: avoid iterating over all async handles commit 1e32cb01b5ae20be0d27fa05ee1555b3f67bf763 Author: Bert Belder Date: Tue Oct 16 17:42:30 2012 +0200 unix: support signal handlers outside the main loop commit 39d574dcff7f5b273d5271c19271d8ba13e9621b Author: Bert Belder Date: Tue Oct 16 17:30:30 2012 +0200 unix: make it possible to delay close callbacks commit 47eb03490ac6e2456f903c0e72ecb22f68b3d0e9 Author: Bert Belder Date: Tue Oct 16 17:20:32 2012 +0200 test: move loop cleanup code to the individual tests commit 28eb619c6504e7f6c10f517487679980aa8560bd Author: Bert Belder Date: Fri Oct 12 00:11:27 2012 +0200 windows: don't run signal tests They are dummy tests on windows, running them is misleading. Also remove duplicate 'test-signal.c' entry from uv.gyp. commit c5e1140779274312b7faca43cdedb668b095cac7 Author: Bert Belder Date: Tue Oct 16 17:21:07 2012 +0200 tests: fix some compile warnings on windows commit 36b1e1a57c59ff835177e26f37742f5fb49cb353 Author: Hiroaki Nakamura Date: Tue Oct 16 06:08:14 2012 +0900 test: change 10e8 to 1e9 It is clearer and used everywhere else. commit fd136da04ade528edb666bf00a7bc7c4bd4d120c Author: Ben Noordhuis Date: Mon Oct 15 00:53:37 2012 +0200 unix: remove always_inline attribute Fixes the following gcc 4.7+ warning: ../src/unix/internal.h:105:13: warning: always_inline function might not be inlinable [-Wattributes] gcc wants the always_inline function to be annotated with the 'inline' keyword which we can't do because we compile in C89 mode. Using __inline is not an option because that makes clang generate warnings when -Wlanguage-extension-token is enabled. Therefore, remove the always_inline attribute altogether and hope that the compiler is smart enough to inline the functions. commit d8de4fbd13f9284737a01dea32639785780c6f0a Author: Ben Noordhuis Date: Mon Oct 15 00:52:24 2012 +0200 build: compile with -fwrapv in debug mode commit 47b2cd31c9b7372553e7687cd3c156d302695e59 Author: Ben Noordhuis Date: Thu Oct 11 14:32:06 2012 +0200 build: rename uv.a to libuv.a commit 9a6f496985823a07f808bac7df95343051c29d1b Author: saghul Date: Thu Oct 11 00:53:50 2012 +0200 win: fix compilation with MSVCRT < 8.0 commit b0c1a3803ab93c93404fd0c00d809ae678a4f43a Author: Bert Belder Date: Wed Oct 10 17:09:20 2012 +0200 windows: fix handle leak in uv_fs_utime commit 4900912d44f3738f50e2a211882d558d6ad0523a Author: Bert Belder Date: Wed Oct 10 17:15:08 2012 +0200 windows: fix application crashed popup in debug version This is a backport of 2 patches by Ting-Yu Lin and Hiroaki Nakamura. commit cb03e3bd26587b851552ad8b54b30600e48ef829 Author: Ben Noordhuis Date: Wed Oct 10 02:09:37 2012 +0200 darwin: work around concurrent write() kernel bug Simultaneously writing from multiple threads to the same file descriptor is not safe on OS X. We already serialized all pwrite() system calls, apply the same workaround to the write() system call. Fixes a node.js test, test/simple/test-fs-sir-writes-alot.js, that was failing because parts of the output file got filled with nul bytes. commit 4affbe70b6f2342c479eb71f9a5df26fed9dccca Author: Ben Noordhuis Date: Wed Oct 10 01:09:45 2012 +0200 unix: remove unnecessary pthread_join ESRCH check ESRCH means the thread never got started but we guard against that now. commit acea3028c53c6e8c5eeeb09f0fba9e4c031aa0ee Author: Hiroaki Nakamura Date: Tue Oct 9 21:44:20 2012 +0900 unix, windows: add thread barrier support commit 2684f876a9998db99848f452a5ff3438be773a05 Author: Hiroaki Nakamura Date: Tue Oct 9 22:57:59 2012 +0900 windows: don't set CRT debug mode on MinGW commit 193432df7d9fd4aef80a3e993f6c00824d5fc50e Author: Andrius Bentkus Date: Sat Oct 6 01:43:54 2012 +0300 uv.h: move gid and uid to the end of the uv_process_t struct uv_gid_t and uv_uid_t have different sizes on different platforms. Moving them to the end of the struct is easier for bindings that use FFI. commit b2caee7cfb495d4ea7239dc23699ba19b51454cc Author: Andrius Bentkus Date: Sat Oct 6 01:39:46 2012 +0300 uv.h: move private uv_req_t fields to the bottom of the struct commit 40134c35377c74bfa56dd764f315dbc5a39a7b22 Author: Ben Noordhuis Date: Mon Oct 8 00:37:01 2012 +0200 unix: don't reap threads if none were started Fixes a segmentation fault on 32 bits linux with glibc 2.15. Thanks to Johan Bergström (@jbergstroem) for reporting the issue and testing out the patch. commit f7c991f1cef1e0691b384b900f551a5c30745c36 Author: Shigeki Ohtsu Date: Sun Oct 7 07:25:09 2012 +0900 test: add consumer-producer test for condvar commit 8f1ec328656c8fb792fce4a346c11141ab2cd9f9 Author: Ting-Yu Lin Date: Sat Oct 6 23:28:30 2012 +0800 windows: fix application crashed popup in debug version commit b9ed1a6dbf0ea5f58ce6c93ac99e738579b84b5a Author: Ben Noordhuis Date: Sat Oct 6 22:45:26 2012 +0200 unix: don't abort() on EINVAL in threadpool.c The FreeBSD implementation of pthread_join() returns EINVAL when a thread has already quit, not ESRCH. commit b152b127727878580112ce2bb1e3754fd387d798 Author: Ben Noordhuis Date: Sat Oct 6 22:25:21 2012 +0200 unix: fix scandir filter prototype again The only platforms where the dirent argument is non-const are OS X, OpenBSD and older versions of FreeBSD (but not FreeBSD 9). Accommodate the first two. commit 7833df14ba7cbc2acab87d43e226a4d874aad698 Author: Ben Noordhuis Date: Sat Oct 6 17:19:09 2012 +0200 freebsd, openbsd: don't use fdatasync() The fdatasync() system call does not exist on either FreeBSD or OpenBSD, fall back to fsync(). commit 7aa126176921b044baab3de357b6afff2ed90355 Author: Ben Noordhuis Date: Fri Oct 5 15:05:30 2012 +0200 include: fix confusing uv_tcp_keepalive comment commit 976c8a4387e5ca4d021924dcf22b9cb9c8c638a8 Author: Hiroaki Nakamura Date: Fri Oct 5 13:03:03 2012 +0200 Add support for condition variables on all platforms commit 744dc3e77c9b914e3863c821f5b0c951de4db0cb Author: Bert Belder Date: Thu Oct 4 01:21:30 2012 +0200 windows: make uv_rwlock_init initialize libuv Without this patch, the fallback implementation would be used if uv_rwlock_init were to be called before a loop was created or uv_default_loop() was called. commit fed718c6cbfbaaed0f98a3678f19916f8c726717 Author: Artur Adib Date: Wed Oct 3 17:29:08 2012 -0400 unix: move queue stuff from fs.c to threadpool.c commit 01337af65d8567f11594eed7af1c7154f1a37845 Author: Shigeki Ohtsu Date: Wed Oct 3 10:08:58 2012 +0900 test, windows: fix duplicated windows.h including windows.h before winsock2.h cause build error commit d796c3b6f414718c7e030046e4369060a20b4ba1 Author: Ben Noordhuis Date: Wed Oct 3 00:58:04 2012 +0200 test: fix windows #include bug Fixes a "'AF_IPX' : macro redefinition" warning when compiling test/runner.c. commit b88f8b40d69bca56d9d858860ed024f773c41f8e Author: Ben Noordhuis Date: Wed Oct 3 00:23:38 2012 +0200 test: fix uninitialized memory warning, use calloc Fixes the following valgrind warning: ==29019== Syscall param writev(vector[...]) points to uninitialised byte(s) ==29019== at 0x584270B: writev (writev.c:51) ==29019== by 0x449BB2: uv__write (stream.c:733) ==29019== by 0x44AE91: uv_write2 (stream.c:1159) ==29019== by 0x44AF25: uv_write (stream.c:1180) ==29019== by 0x42CCAA: connect_cb (test-tcp-writealot.c:129) ==29019== by 0x44AC05: uv__stream_connect (stream.c:1097) ==29019== by 0x44AA25: uv__stream_io (stream.c:1050) ==29019== by 0x437430: uv__io_rw (core.c:539) ==29019== by 0x43C3D9: ev_invoke_pending (ev.c:2145) ==29019== by 0x436EC5: uv__poll (core.c:260) ==29019== by 0x436F0F: uv__run (core.c:269) ==29019== by 0x436F6E: uv_run (core.c:277) ==29019== Address 0x5f15040 is 0 bytes inside a block of size 94,371,840 alloc'd ==29019== at 0x4C2C5EF: malloc (vg_replace_malloc.c:270) ==29019== by 0x42CDED: run_test_tcp_writealot (test-tcp-writealot.c:148) ==29019== by 0x406551: run_test_part (runner.c:302) ==29019== by 0x405384: main (run-tests.c:57) commit c666b6310de2d85b3c966ad8de2cfef44d1af1ae Author: Ben Noordhuis Date: Wed Oct 3 00:01:42 2012 +0200 unix: fix uninitialized memory read in uv__read() This commit fixes the following valgrind warning: ==26443== Conditional jump or move depends on uninitialised value(s) ==26443== at 0x44AAFF: uv__read (stream.c:872) ==26443== by 0x44ADD4: uv__stream_io (stream.c:1051) ==26443== by 0x4377B8: uv__io_rw (core.c:539) ==26443== by 0x43C761: ev_invoke_pending (ev.c:2145) ==26443== by 0x43724D: uv__poll (core.c:260) ==26443== by 0x437297: uv__run (core.c:269) ==26443== by 0x4372F6: uv_run (core.c:277) ==26443== by 0x42094B: run_test_pipe_ref4 (test-ref.c:334) ==26443== by 0x406551: run_test_part (runner.c:302) ==26443== by 0x405384: main (run-tests.c:57) commit c6c691f3230134f18e332e98479628fe538ae92c Author: Ben Noordhuis Date: Tue Oct 2 23:54:16 2012 +0200 test: join worker thread at exit in test-async.c commit 5135cfc45bd7725157c8f8fbdfc7863d3d1c32c0 Author: Ben Noordhuis Date: Tue Oct 2 23:45:27 2012 +0200 test: fix memory leak in test-getsockname.c commit f89986b1539aadabd8f0953025408792c6dc8f52 Author: Ben Noordhuis Date: Tue Oct 2 23:13:50 2012 +0200 test: fix memory leaks in test-fs-event.c commit e474a2a420e4bf22f5017bac96a16a08a7e3fc32 Author: Ben Noordhuis Date: Tue Oct 2 23:10:59 2012 +0200 test: fix memory leak in test-fs.c commit b37a0f5bb3d0d6e1314d89eaabd2092c7548ba7d Author: Ben Noordhuis Date: Tue Oct 2 23:02:31 2012 +0200 unix: fix small race in fs.c Don't return req->result after posting the work request. It's possible (if unlikely) for a worker thread to process the request before the main thread reaches the return statement. commit 3977d1b36c689767cc0db50089ec774143795341 Author: Ben Noordhuis Date: Tue Oct 2 02:51:58 2012 +0200 unix: emulate sendfile if necessary Some platforms don't support sendfile() (netbsd, openbsd), others don't support arbitrary file descriptors (freebsd, darwin) and yet others have quirks in their implementation (sunos). Work around the quirks. If all else fails, fall back to sendfile() emulation. commit 2d3760a17c58812cf1058acad01b1f826005cc5e Author: Ben Noordhuis Date: Tue Oct 2 14:37:13 2012 +0200 unix: fix scandir filter prototype The dirent argument is const on systems that conform to POSIX.2008 (Linux and Solaris) but non-const on others. commit 8399cb1fc366b1e5184f8a4e65f4e67f60eea7a9 Author: Ben Noordhuis Date: Mon Oct 1 23:54:32 2012 +0200 test: fix memory leaks in fs_symlink test commit d36e2f21cf2c88291c523cd0235d5446feaa8678 Author: Ben Noordhuis Date: Mon Oct 1 23:50:58 2012 +0200 unix: fix buffer overrun in fs.c commit 6342658ad8281a1fb70cf3777d35be21dba6c8bb Author: Ben Noordhuis Date: Mon Oct 1 15:21:59 2012 +0200 unix, windows: fix memory leak in fs-poll.c The internal timer handle associated with the uv_fs_poll_t wasn't always closed when the fs poll handle was closed, leaking about 650 bytes memory. commit f793298c9ea6b08e1484f25b215cdffc4e1f9441 Author: Ben Noordhuis Date: Mon Oct 1 23:04:36 2012 +0200 include: remove uv_fs_poll ABI compat padding commit 447ee1060c5ca1eb2a846b976a816bbabe60636f Author: Bert Belder Date: Mon Oct 1 23:07:31 2012 +0200 doc: add link to test/ to the readme commit 7320633c4b96ac23a5f41982d0c036e1c742ef6c Author: Ben Noordhuis Date: Mon Oct 1 22:47:25 2012 +0200 unix: remove uv_fs_stat windows compat hack uv_fs_stat and uv_fs_lstat removed the trailing backslash (if any) from the path in order to please a test case that was written for Windows. Remove the compatibility hack and fix the test. commit 678e95a4432952a9a2c7786bec513c5e0f30f45e Author: Ben Noordhuis Date: Mon Oct 1 14:07:10 2012 +0200 test: close handle in ref tests Everything that gets reported by valgrind now is an actual memory leak. commit b60a24a206f21a139912eb5d847a9b1ac77187dc Author: Ben Noordhuis Date: Mon Oct 1 00:32:01 2012 +0200 unix: remove libeio commit 74999f8f9974970e4d71a0df521e178e3149f3df Author: Ben Noordhuis Date: Mon Oct 1 00:57:45 2012 +0200 unix: port fs and work api to new thread pool commit 36c91e3ba0f6e27b8f518f903c732005bce191fa Author: Ben Noordhuis Date: Mon Oct 1 00:48:47 2012 +0200 unix: port getaddrinfo to new thread pool commit f35a4b628a0153e454414e0c897785b59dd3709f Author: Ben Noordhuis Date: Mon Oct 1 00:38:39 2012 +0200 unix: add custom thread pool commit 1020a1a82e78e9a018ef4d152274f13233da788e Author: Ben Noordhuis Date: Sun Sep 30 23:05:25 2012 +0200 include: make ngx_queue macros sanitary commit 5e09e1b57eb658ba800fe8513df0210daebb6b3f Author: Ben Noordhuis Date: Sun Sep 30 17:39:22 2012 +0200 linux: please valgrind, free memory at exit Free the memory that is used to store the new argv and envp. It's not strictly necessary (the OS is going to reclaim the memory anyway) but it makes the output from valgrind a lot less noisy. commit 45b5e79f8eed828523359064f7bb9d9332a91584 Author: Ben Noordhuis Date: Sun Sep 30 23:35:22 2012 +0200 test: fix memory leak in tcp_ping_pong commit f090297f62b834b8904ac1bc4f8c9c969855b1e6 Author: Ben Noordhuis Date: Sun Sep 30 23:41:03 2012 +0200 test: delete default loop after test run Delete the default event loop after the test completes. Keeps valgrind happy. commit 4e268f7718a21e55ffa6580b8b378c2fe724bbec Author: Ben Noordhuis Date: Sun Sep 30 17:38:02 2012 +0200 test: add valgrind support Run tests through valgrind when UV_USE_VALGRIND=1 is set in the environment. commit 48f98424bdae92cbd54c3f41cb4f7cc5a18cbf30 Author: Ben Noordhuis Date: Sun Sep 30 17:07:24 2012 +0200 test: fix error message in runner commit 1923abda9487921fc2ce5ba6586ce035c5645e94 Author: Ben Noordhuis Date: Sun Sep 30 03:26:48 2012 +0200 test: add uv_fs_readlink test commit e2cffdcf5fe934ea799b19f8ce9220839ea1979c Author: Bert Belder Date: Mon Oct 1 19:49:30 2012 +0200 doc: add lxjs talk to readme commit 7ac23ee0c6ec51974ef7e63679172c567dab14ce Author: Ben Noordhuis Date: Fri Sep 28 07:58:54 2012 +0200 unix: move getaddrinfo code to getaddrinfo.c commit 4f8e2a8e8e1c192d21d93142049c91bc3c68a493 Author: Ben Noordhuis Date: Fri Sep 28 07:01:59 2012 +0200 unix: close async pipe fds on loop delete commit 17ea46d25935797c5b67ace2afb38da637614b60 Author: Ben Noordhuis Date: Fri Sep 28 06:18:21 2012 +0200 include: remove uv_counters_t, missed in 837edf4 commit 8afd71a12896a8082a26cca51f942d6f14761caa Author: Shannen Saez Date: Wed Sep 26 03:20:44 2012 +1000 windows: fix vcbuild.bat issue gyp_uv was complaining because it never receives a value for which type of library to build (static vs shared). This makes vcbuild.bat set the default to build a static library. commit 39ca621987e1d1542cec76b8785aa15ea26e225d Author: Bert Belder Date: Sat Sep 22 03:49:52 2012 +0200 windows: don't blow up when an invalid FD is used commit b877db93cec5664a9603ca94c172b06952382468 Author: Charlie McConnell Date: Wed Sep 19 10:49:20 2012 -0700 unix: map EDQUOT to UV_ENOSPC commit 5bfb7c917b3b487aab5e44face286bf4c6a0ef68 Author: Luigi Grilli Date: Fri Sep 21 00:51:49 2012 +0200 windows: build system improvements * Add shared/static library option * Add x86/x64 target option * Improve Visual Studio detection * Set GYP_MSVS_VERSION to pick VS2010 over VS2008 Closes GH-504 Closes GH-514 commit 45931f8b2b7a536dead3b915092f216df8382a03 Author: Bert Belder Date: Thu Sep 20 23:50:42 2012 +0200 Add mailing list to readme commit 46bd5fb3924cc754f99c21244380d12faff41549 Author: Bert Belder Date: Thu Sep 20 16:07:08 2012 +0200 Rearrange struct layouts to make FFI bindings easier This patch ensures that all struct fields are in this order: 1. public 2. readonly 3. private commit 73cf3600d75a5884b890a1a94048b8f3f9c66876 Author: Fedor Indutny Date: Thu Sep 20 13:04:48 2012 +0400 darwin: fsevents: emit UV_CHANGE on metadata change commit 2916a16067381a1cc6eae0ade499bcaeeef461e8 Author: Charlie McConnell Date: Wed Sep 19 10:49:20 2012 -0700 unix: map EDQUOT to UV_ENOSPC commit ea8db64559680b589196b1ae01152c35d2232c41 Author: Ben Noordhuis Date: Tue Sep 18 13:14:14 2012 +0200 darwin: fix 'directive in macro' compiler warning commit 778144f0b5bc14fe55d79854d0a67124ceaa4b22 Author: Fedor Indutny Date: Tue Sep 18 00:38:40 2012 +0400 darwin: emit relative path in fsevents commit be2a2176ce25d6a4190b10acd1de9fd53f7a6275 Author: Ben Noordhuis Date: Tue Sep 18 00:04:50 2012 +0200 unix: rethink relaxed accept() approach Benchmarks demonstrated that the idle timer handle approach didn't balance the load quite fair enough, the majority of new connections still ended up in one or two processes. The new approach voluntarily gives up a scheduler timeslice by calling nanosleep() with a one nanosecond timeout. Why not sched_yield()? Because on Linux (and this is probably true for other Unices as well), sched_yield() only yields if there are other processes running on the same CPU. nanosleep() on the other hand always forces the process to sleep, which gives other processes a chance to accept our pending connections. commit 37dc7472d762003f6415e4d12608fc6235bb70e4 Author: Ben Noordhuis Date: Mon Sep 17 23:48:19 2012 +0200 test: fix aliasing warning in dns-server.c commit 29f44c756468eab4f6f23781b949dd788c9c559a Author: Ben Noordhuis Date: Wed Sep 5 22:57:10 2012 +0200 bench: let client close connection in tcp_multi_accept{2,4,8} commit a8c6da8dfa9a33c0f6ccdc555bb4fd3ac47bb07f Author: Ben Noordhuis Date: Wed Sep 5 22:49:44 2012 +0200 bench: add idle delay to tcp_multi_accept{2,4,8} commit b74b1c4c56e8c8c0527d80a24a3a8da99c49b68b Author: Ben Noordhuis Date: Wed Sep 5 16:25:18 2012 +0200 bench: add tcp accept benchmarks commit cc1c1912ca119c56ecdc0e4564720a01bd53d47e Author: Saúl Ibarra Corretgé Date: Mon Sep 17 12:15:12 2012 +0200 unix, windows: add uv_tcp_open and uv_udp_open commit c8514b03829b841ea52c4fe90fbd20ff5dfe9fe2 Author: Saúl Ibarra Corretgé Date: Thu Sep 13 08:45:31 2012 +0200 unix, windows: return error if uv_pipe_open fails commit 9a4838110d5b625356d6df537931617a5987ece4 Author: Ben Noordhuis Date: Tue Aug 14 17:00:25 2012 +0200 linux: improve /proc/cpuinfo parser Make uv_cpu_info() understand the ARM and MIPS versions of /proc/cpuinfo, it only knew how to deal with the x86 version This commit also fixes a buglet where uv_cpu_info() reported the maximum CPU frequency instead of the actual CPU frequency. That is, before this commit `out/Debug/run-tests platform_output | grep speed | sort | uniq -c` on my system always reported: 8 speed: 3400 Now it reports (for example): 2 speed: 3400 6 speed: 1600 In other words, two CPUs are running at full speed while the others have been scaled back because they're mostly idle. This is a back-port of commit 54bfb66 from the master branch. Fixes #526. commit b2dc1e6d64874182d460b81c10ec6165baad3780 Author: Bert Belder Date: Fri Sep 14 17:50:45 2012 +0200 win/tty: reset background brightness when color is set to default commit 3d9de13f1bd0a747615ddb3fa5f9c7c7d3500d5c Author: Bert Belder Date: Fri Sep 14 03:56:12 2012 +0200 darwin: fix build when minimum OS X version is specified The OS X version was being checked with the __MAC_OS_X_VERSION_MIN_REQUIRED__ macro, but this value doesn't match the actual SDK version when it is overridden with the -mmacosx-version-min command line switch. commit a28f1452697ffc4310a99eba9ce2ee3906d11578 Author: Bert Belder Date: Fri Sep 14 02:46:33 2012 +0200 windows: un-break writable tty handles commit 5a2988fc33a5942b2e0e55bf6993843fe3448305 Author: Bert Belder Date: Fri Sep 14 01:48:41 2012 +0200 windows: remove unnecessary pointer alignment code commit b4a5bfb7e0af760464f369c47abc99645f1768a3 Author: Bert Belder Date: Fri Sep 14 01:42:36 2012 +0200 windows: style commit 900ad30b43599e9ac13a84e634db414846d0af6e Author: Andrew Paprocki Date: Fri Sep 14 01:21:02 2012 +0200 aix: add initial platform support for aix using gcc/gxlc Adds initial libuv build/platform support for AIX. Builds work using gcc or the IBM XL C compiler using its gxlc wrapper. Platform support is added for uv_hrtime, uv_exepath, uv_get_free_memory, uv_get_total_memory, uv_loadavg, uv_uptime, uv_cpu_info, uv_interface_addresses. commit 9aead825374174fc5e617f7971d865a08eebb120 Author: Bert Belder Date: Thu Sep 13 23:42:07 2012 +0200 windows: rename UV_HANDLE_CLOSING to UV__HANDLE_CLOSING commit 15ba80033aad455ace45288fb0d5a50cba8a86f4 Author: Leonard Hecker Date: Wed Sep 5 16:35:28 2012 +0200 windows: support for NULL as uv_queue_work callback This will make uv_queue_work consistent with other functions, where it's possible to omit the callback. I'm pretty sure that this is already implemented for unix systems, although I didn't test the unix part of uv_queue_work. commit 1f9bd9953197a4ca83b8a725a215269c5f221de7 Author: Prancesco Pertugio Date: Wed Sep 12 00:27:35 2012 +0200 Add uv_thread_self. commit 2b04bc7a747ee57dedad4ecdcc1a51ca83ec85fc Author: Ben Noordhuis Date: Thu Sep 13 14:13:21 2012 +0200 doc: add note about -D_GNU_SOURCE commit b7047d6701db85d5d074ed4e081a31f3928e6a45 Author: Saúl Ibarra Corretgé Date: Thu Sep 13 00:46:49 2012 +0200 unix: remove __read_mostly macro It creates trouble with llvm-gcc on OS X. commit f8e7513a0618c33aef526abf76eb4bc99f0cdaa0 Author: Fedor Indutny Date: Mon Aug 13 16:37:31 2012 +0400 darwin: use FSEvents to watch directory changes commit 1988f5e581e4cadb20d8e69ddee9be8a26ff2646 Author: Ben Noordhuis Date: Wed Sep 12 01:44:46 2012 +0200 unix: put child process stdio fds in blocking mode Remove the O_NONBLOCK flag from file descriptors 0-2, most applications don't expect EAGAIN errors when dealing with stdio. commit b5028c5b542f34f77ab9e0dcf172898d7f2028a0 Author: Ben Noordhuis Date: Wed Sep 12 01:33:16 2012 +0200 unix: code cleanup, rename variable commit 57e6113683bb5b1b69e7bb92dad45b04ca7a97b9 Author: Shigeki Ohtsu Date: Sat Sep 8 21:34:14 2012 +0900 unix: support missing api on NetBSD commit 4f5c8da191a29a8567e69c8586c9e275ab465232 Author: Ben Noordhuis Date: Mon Sep 10 16:20:56 2012 +0200 unix: reimplement accept() EMFILE trick Implement a best effort approach to mitigating accept() EMFILE errors. We have a spare file descriptor stashed away that we close to get below the EMFILE limit. Next, we accept all pending connections and close them immediately to signal the clients that we're overloaded - and we are, but we still keep on trucking. There is one caveat: it's not reliable in a multi-threaded environment. The file descriptor limit is per process. Our party trick fails if another thread opens a file or creates a socket in the time window between us calling close() and accept(). Fixes #315. commit 86cb5203b6275920c4548f8ef93a0f37165f9416 Author: Ben Noordhuis Date: Mon Sep 10 15:01:50 2012 +0200 unix: fix EMFILE busy loop Don't spin in epoll_wait() / kevent() / port_getn() / etc. when we can't accept() a new connection due to having reached the file descriptor limit. Pass the error to the connection_cb and let the libuv user deal with it. commit 12c25e1027e26ffb16f54d17a69a88450e9a23df Author: Ben Noordhuis Date: Mon Sep 10 15:01:50 2012 +0200 unix: fix EMFILE busy loop Don't spin in epoll_wait() / kevent() / port_getn() / etc. when we can't accept() a new connection due to having reached the file descriptor limit. Pass the error to the connection_cb and let the libuv user deal with it. commit 33bcb6359613361b60565f280375edeb672514c8 Author: Ben Noordhuis Date: Fri Sep 7 15:08:43 2012 +0200 build: make gyp_uv understand '-f ninja' commit 27b11abcc0668982c61d58a44a56adb0f45cc56d Author: Bert Belder Date: Sat Sep 8 17:52:57 2012 +0200 unix: mark accept idle handle as internal commit 817b6c356bd0e8e4b1bb5d7daf23b0be4e72a15c Author: Ben Noordhuis Date: Fri Sep 7 15:08:43 2012 +0200 build: make gyp_uv understand '-f ninja' commit 3bbe8f975417002640f7248204bf7282f7f6e2df Merge: 032c041 b101a53 Author: Ben Noordhuis Date: Tue Sep 4 01:23:18 2012 +0200 Merge branch 'v0.8' commit b101a53e6ef80945f12c91263a4b41b45b8b4344 Author: Ben Noordhuis Date: Tue Sep 4 01:20:30 2012 +0200 sunos: don't set TCP_KEEPALIVE The system headers advertise the socket option but the actual syscall fails with ENOPROTOOPT. Fixes joyent/node#3937. commit 032c04179033b7512187fbcd17230e564c8573f4 Author: Bert Belder Date: Mon Sep 3 21:09:40 2012 +0200 windows: use UV_HANDLE_READABLE and UV_HANDLE_WRITABLE These flags supersede UV_HANDLE_EOF and UV_HANDLE_SHUTTING. This patch also moves a lot of stream related state-checking code to stream.c. commit 483043b0e585d054d2d06d759c050a623191c50a Author: Bert Belder Date: Mon Sep 3 17:16:21 2012 +0200 windows: map WSAESHUTDOWN to UV_EPIPE commit 0bbccbc31d9f49132fe27edee17aba3086d73ba3 Author: Bert Belder Date: Mon Sep 3 15:38:29 2012 +0200 windows: remove the UV_HANDLE_SHUT flag commit ff0a93a04f216924e3da92e77b14214a93575cfe Author: Ben Noordhuis Date: Sat Sep 1 00:27:20 2012 +0200 unix: fix clang -Wlanguage-extension-token warnings commit 5eb1d191cce15e01745317ee8c8a3065803f4f02 Merge: a75e105 24c062c Author: Bert Belder Date: Thu Aug 30 17:26:02 2012 +0200 Merge branch 'v0.8' commit 24c062cc3e7013fdaab7dd9c6b7f0266a43622d0 Author: Bert Belder Date: Thu Aug 30 17:24:20 2012 +0200 windows: fix memory corruption when closing shared server sockets commit a75e10504f4e213408efea47de30c52f6367395e Author: Ben Noordhuis Date: Wed Aug 29 22:27:11 2012 +0200 freebsd: fix build breakage introduced in 3b69c0f commit 09faee40eb6de13f115dfcae3305faa49f8d252f Author: Shigeki Ohtsu Date: Wed Aug 29 11:14:36 2012 +0900 windows: fix environment_creation test abc945bc04bcd84ecb980988264949013ca35198 fails environment_creation test commit abc945bc04bcd84ecb980988264949013ca35198 Author: Bert Belder Date: Tue Aug 28 22:20:16 2012 +0200 windows: make spawn with custom environment work again commit 5c674b28894ba3b5f66959a9520ba7e18fb45a58 Author: Bert Belder Date: Tue Aug 28 22:21:13 2012 +0200 windows: squelch some warnings related to int64 to int32 conversion commit 162e57baa972b008840644bafeb292e8aa7ed62d Author: Bert Belder Date: Tue Aug 28 21:49:54 2012 +0200 windows: map ERROR_DIRECTORY to UV_ENOENT commit 621a4e36f7f000a5c9f932bc66021a83c96cae42 Author: Bert Belder Date: Mon Aug 27 23:57:48 2012 +0200 test: add test for uv_is_active and uv_is_closing commit 637be161b391e42f7b69e348a9c424d95c7ff963 Author: Bert Belder Date: Mon Aug 27 23:56:35 2012 +0200 windows: make active and closing handle state independent commit c77d08eb9229f738aa9d6433a1d3e1d711abfa3d Author: Ben Noordhuis Date: Sat Aug 25 22:02:37 2012 +0200 bench: add timed and non-timed udp pummel benchmarks commit a3c6a485c6a01eff85015f39113247f82ea1e24c Merge: 343be71 ad7b48a Author: Ben Noordhuis Date: Sat Aug 25 22:33:17 2012 +0200 Merge branch 'v0.8' Conflicts: include/uv.h commit ad7b48aeec39ba90a9817aaf07abcaf3f9ebf462 Author: Ben Noordhuis Date: Sat Aug 25 22:22:43 2012 +0200 unix: fix memory leak in udp.c Some memory was leaked when the uv_udp_t handle was closed when there were in-flight send requests with a heap allocated buffer list. That doesn't happen much in practice. In the common case (writing < 5 buffers), the buffer list is stored inside the uv_udp_send_t structure, not allocated on the heap. commit 343be71cae4ab143f3a53c898f1f317bbf16745f Author: Shigeki Ohtsu Date: Fri Aug 24 15:25:37 2012 +0900 windows: remove superfluous uv__handle_start uv__handle_start was not needed in uv_signal_init commit d62b1ac3820d740559649b56e369cde57998f3da Author: Bert Belder Date: Thu Aug 23 23:50:03 2012 +0200 windows: fix the MinGW build commit e89cb907a2e2e9f64842d363c3e245418eabafcd Author: Ben Noordhuis Date: Thu Aug 23 15:50:50 2012 +0200 unix: fix aliasing warnings in stream.c commit b81e67a19cb59fc60549a26e8b986d3e217143c8 Author: Ben Noordhuis Date: Thu Aug 23 15:37:45 2012 +0200 unix: fix aliasing warning in udp.c commit 0ac2fdc55455794e057e4999a2e785ca8fbfb1b2 Author: Ben Noordhuis Date: Thu Aug 23 00:32:56 2012 +0200 unix: map errno ESPIPE commit a787a16ac371b2c5ed5c8a61a5602e71beff81e0 Author: Bert Belder Date: Wed Aug 22 20:40:14 2012 +0200 unix: fix uv_async_send not working with Sun Studio uv_async_send would always return 1 when non-gcc compilers were used. When uv_async_send returns 1 no attempt is made to make port_getn return, so in this situation uv_async_send didn't wake up the event loop. commit 120e2c1335e9c5c2bfda5348af3d3ea05c0934ac Author: Ben Noordhuis Date: Wed Aug 22 15:02:51 2012 +0200 darwin: fix return value of uv_sem_init() It should return 0 or -1, not the kernel status code. commit 8969df6015a2697f9deb0c6bbabbafbd70ad9ce2 Author: Fedor Indutny Date: Wed Aug 22 19:27:17 2012 +0700 darwin: handle KERN_ABORTED in uv_sem_wait() commit 29eb460d0b20fe32619e50e3a5a517e8d3f71b3c Author: Ben Noordhuis Date: Wed Aug 22 09:46:00 2012 +0200 linux: fix fscanf() -Wunused-result warning commit 03bdfd08ccc70760e05729ac7e04d17ebc4a7fcd Author: Bert Belder Date: Wed Aug 22 01:06:05 2012 +0200 windows: lock tty output before updating the virtual window size commit 564e7c765cf7992fb7db0a4e0749ae84e9695d85 Author: Bert Belder Date: Wed Aug 22 00:40:41 2012 +0200 windows: emit SIGWINCH when the console size changes commit b12b6498d612990a1f5375148a5bde456e7efddf Author: Ben Noordhuis Date: Tue Aug 21 14:44:07 2012 +0200 darwin, freebsd: use ioctl(FIOCLEX) and ioctl(FIONBIO) Set the non-blocking and close-on-exec flags with ioctl() instead of fcntl(), it's about 10-25% faster. Stick with fcntl() on Solaris. ioctl(FIONBIO) works but is twice as slow as fcntl(O_NONBLOCK). ioctl(FIOCLEX) doesn't raise an error but doesn't actually work either. commit 37173f851524e2bf86069cda729538b35e6475d5 Merge: d90102e a7b83e0 Author: Bert Belder Date: Tue Aug 21 01:20:05 2012 +0200 Merge branch 'v0.8' commit a7b83e0b9822abe104761db9aea3fb975187114b Author: Bert Belder Date: Tue Aug 21 01:17:48 2012 +0200 windows: fix uninitialized memory access in uv_update_time() uv_update_time does not overwrite the high 32 bits of uv_loop_t.time. It merely increments it by one when the low 32 bits have wrapped. That means that `time` needs to be initialized to zero before uv_update_time() is called for the first time. commit d90102e649e9711975895e70022a7a93dd4a3cac Author: Ben Noordhuis Date: Tue Aug 21 00:57:49 2012 +0200 linux: don't retry syscall after ENOSYS Don't try the pipe2() or socketpair(O_CLOEXEC) syscalls when a previous call to uv__make_pipe() or uv__make_socketpair() call established that the kernel doesn't support it. Speeds up pipe and socketpair creation on older kernels. commit 6545e9bda46b0b4a7addfb32926eaab6f62e2b4b Author: Ben Noordhuis Date: Tue Aug 21 00:53:05 2012 +0200 linux: tag no_accept4 __read_mostly commit 5f8185aba59a4dae43711595699231f57133cefe Author: Ben Noordhuis Date: Tue Aug 21 00:48:39 2012 +0200 unix: add __read_mostly macro Variables tagged with __read_mostly are put into a separate ELF section to improve the cache locality of data that is read often but seldom written to. commit 3c526cb7e53975fc867a6796236010933aedc7be Author: Ben Noordhuis Date: Tue Aug 21 00:27:55 2012 +0200 linux: fix uv__epoll_create() prototype commit 5da380a5ca7f9ef02667ef3021fc97428df0b478 Author: Fedor Indutny Date: Thu Aug 16 20:26:35 2012 +0700 unix: use select() for specific fds on OS X kqueue(2) on osx doesn't work (emits EINVAL error) with specific fds (i.e. /dev/tty, /dev/null, etc). When given such descriptors - start select(2) watcher thread that will emit io events. commit 8073a2637f82b44813fc60537724634694dc14a4 Author: Bert Belder Date: Mon Aug 20 18:37:05 2012 +0200 windows: uv_signal_stop should be infallible commit b0b5a08f5611cefbad7bb8703989f6b1700ae07a Author: Bert Belder Date: Mon Aug 20 18:38:30 2012 +0200 windows: report UV_INVAL when an invalid signum is supplied commit 328f29b06f989d5e775ae4c4b6b28b7245c42737 Author: Bert Belder Date: Mon Aug 20 18:32:50 2012 +0200 windows: fix stupid uv_signal bugs commit 28ff1422e8f789e417f36c2f063b6696ded67b92 Merge: 201b8f9 012cbda Author: Ben Noordhuis Date: Mon Aug 20 18:11:43 2012 +0200 Merge branch 'v0.8' Conflicts: src/fs-poll.c commit 012cbda719a13bc21ce3b58d66544e351359f3af Author: Ben Noordhuis Date: Mon Aug 20 16:17:37 2012 +0200 unix, windows: fix memory corruption in fs-poll.c uv_fs_poll_t has an embedded uv_timer_t handle that got closed at a time when the memory of the encapsulating handle might already have been deallocated. Solve that by moving the poller's state into a structure that is allocated on the heap and can be freed independently. commit b5ad44d10301b6e95be0a3f30376d7241d55be98 Author: Ben Noordhuis Date: Mon Aug 20 16:31:25 2012 +0200 test: add uv_fs_poll_t to benchmark-sizes.c commit 83e00873b7f28956b03896ba8f14835b667de815 Author: Ben Noordhuis Date: Tue Aug 7 21:26:02 2012 +0200 unix: fix const correctness compiler warning This is a back-port of commit f97c80f from the master branch. commit 201b8f935fc019d48ab1216be5c5f94a8f595956 Merge: 9f0e00c ce87b7e Author: Bert Belder Date: Sat Aug 18 03:57:41 2012 +0200 Merge branch 'v0.8' commit ce87b7e14cbf886e0f2279a322b87267a73071a0 Author: Tim Holy Date: Fri Aug 17 13:24:24 2012 -0500 unix: fix integer overflow in uv_hrtime Conversion to nanoseconds was overflowing with 32-bit builds. commit 9f0e00c7b3911e49d7f19c15056f98c8ab17edb3 Author: Bert Belder Date: Fri Aug 17 19:41:14 2012 +0200 unix: fix the build uv_signal_t.signum was moved to uv.h in an earlier commit. commit c4dbb60cffbaba4c376e7b9717e090b0ec5a0b68 Author: Bert Belder Date: Wed Aug 15 03:11:47 2012 +0200 windows: basic signal handling support with uv_signal_t This still needs tests. commit 95a742be022eff9b77d988fef849ebb9d6dcd8ff Author: Bert Belder Date: Fri Aug 17 19:29:58 2012 +0200 Revert "windows: readable tty handles need access to console output" This is not the way to go. This reverts commit 1b929bfff5be0c03826e3855cb5e1fd3d6421ac7. commit 3b69c0f56d890ea0a882b99c829c65e6dea85208 Author: Ben Noordhuis Date: Fri Aug 17 16:21:24 2012 +0200 unix: split up uv-unix.h commit ddd52773dd45ad42d63362b4c91fd2ef0dc3f0f1 Author: Ben Noordhuis Date: Fri Aug 17 16:28:29 2012 +0200 build: handle bad gcc -dumpversion output `gcc -dumpversion` usually prints major.minor - but on sunos it prints major.minor.patch. commit a7f7696a8d69676fef06c622313649798cff7b5c Author: Ben Noordhuis Date: Fri Aug 17 15:19:40 2012 +0200 unix: remove UV_REQ_BUFSML_SIZE commit 894b0fc0a7b6fd97869ed13682449d18fd4f1090 Author: Ben Noordhuis Date: Fri Aug 17 14:48:51 2012 +0200 unix: move platform init out of loop.c Move platform-specific initialization logic out of loop.c and into the platform files (freebsd.c, sunos.c, etc). commit 1b929bfff5be0c03826e3855cb5e1fd3d6421ac7 Author: Bert Belder Date: Thu Aug 16 23:29:01 2012 +0200 windows: readable tty handles need access to console output Readable tty handles need to be able to update the virtual window, so if uv_tty_t is initialized with a console input fd, additionally open the console output. commit 88634c1405097c19582e870d278dd0e29dc55455 Author: Bert Belder Date: Thu Aug 16 23:05:59 2012 +0200 windows: separate uv_tty_t read state from write state commit 7cf1b67594e354593b5e37b8381df89067368aaf Author: Bert Belder Date: Thu Aug 16 22:50:33 2012 +0200 windows: small style fix in uv-win.h commit 22ce5a34122245d2f4d63abe7ceb5218eb55f337 Author: Ben Noordhuis Date: Thu Aug 16 14:43:39 2012 +0200 sunos: fix uv_cpu_info() on x86_64 kstat_data_lookup("clock_Mhz") returns a KSTAT_DATA_INT32 on i386 but a KSTAT_DATA_INT64 on x86_64. commit 90a75b0d8485d802a69056e7e63ae1ce749c69de Author: Ben Noordhuis Date: Wed Aug 15 23:08:31 2012 +0200 include: update uv_timer doc comments commit 938a30589cd72f482b15df7290101ffc6e226e05 Author: Bert Belder Date: Wed Aug 15 03:07:26 2012 +0200 windows: tweak formatting inside uv-win.h commit 7cd400ef10bb727be9ff8e5e55affb435610a30f Author: Ben Noordhuis Date: Tue Aug 14 18:20:25 2012 +0200 unix: report exit_status==-1 when execve() fails Call exit_cb with exit_status==-1 when spawning a new process with uv_spawn() fails. commit 54bfb66806a3f94f44243030ad51a10db6c9eb29 Author: Ben Noordhuis Date: Tue Aug 14 17:00:25 2012 +0200 linux: improve /proc/cpuinfo parser Make uv_cpu_info() understand the ARM and MIPS versions of /proc/cpuinfo, it only knew how to deal with the x86 version This commit also fixes a buglet where uv_cpu_info() reported the maximum CPU frequency instead of the actual CPU frequency. That is, before this commit `out/Debug/run-tests platform_output | grep speed | sort | uniq -c` on my system always reported: 8 speed: 3400 Now it reports (for example): 2 speed: 3400 6 speed: 1600 In other words, two CPUs are running at full speed while the others have been scaled back because they're mostly idle. Fixes #526. commit f4f294f7c666d7c0e092a8aab7a632a932583400 Author: Ben Noordhuis Date: Tue Aug 14 12:45:18 2012 +0200 linux: remove bogus comment in linux-core.c commit 7fb43d3c5ba1079e57bcf8aaa598dcbac41451d0 Author: Bert Belder Date: Tue Aug 14 01:04:43 2012 +0200 windows: move uv_atomic_exchange_set to atomicops-inl.h commit 4442ddcaaedc7efc70bd5636363c481b58528f91 Author: Bert Belder Date: Tue Aug 14 00:19:19 2012 +0200 windows: fix formatting issue in uv-win.h commit 7c3ba514e7897ee78f1a95e071e5451bb5b03cd9 Author: Bert Belder Date: Mon Aug 13 22:19:03 2012 +0200 windows: use WCHAR consistently commit aa69f34d53dfa0897aa00a7a1f0e97b3f6947d9b Author: Bert Belder Date: Mon Aug 13 22:11:07 2012 +0200 windows: report spawn errors to the exit callback Formerly spawn errors would be reported as a message printed to the process' stderr, to match unix behaviour. Unix has now been fixed to be more sensible, so this hack can now be removed. This also fixes a race condition that could occur when the user closes a process handle before the exit callback has been made. commit 80eae821049009eee6abd65a2a991a5a2beb4572 Author: Bert Belder Date: Mon Aug 13 22:11:50 2012 +0200 test: spawn failures are reported by setting the exit code to -1 commit 3f1f11f33827f9053400248ac5a64cca88732fb3 Author: Bert Belder Date: Mon Aug 13 22:03:58 2012 +0200 windows: use UV_ECANCELED to signal canceled requests This used to be UV_EINTR, but that's not an appropriate error code in this situation. commit 1b8307637babf749dde04149b4055fdf813c92c7 Author: Bert Belder Date: Mon Aug 13 22:02:45 2012 +0200 test: fix intermittent failure of tcp_unexpected_read on windows commit c85672eb136899e249ec6efe336e802ca450e027 Author: Bert Belder Date: Mon Aug 13 22:19:41 2012 +0200 test: avoid compiler complaints about implicit double-to-int cast commit 762c85c3ef6abf27a189131f0a8b9fc629acec16 Author: Bert Belder Date: Mon Aug 13 22:31:33 2012 +0200 windows: un-break the build commit 758a76922beca511a4b086e45269896607df8a3c Author: Ben Noordhuis Date: Mon Aug 13 16:36:29 2012 +0200 unix: fix SIGCHLD race in process.c Start the SIGCHLD signal watcher before calling fork(). There was a very subtle race where a child process could quit (and generate a SIGCHILD) before the signal handler was installed. To reproduce, call uv_spawn() repeatedly with the below x86_64 program: // compile with `gcc -O2 -nostdlib` void _start(void) { // syscall(SYS_exit, 0) __asm__ __volatile__ ( "xorq %rdi, %rdi;" "xorq %rax, %rax;" "mov $0x3c, %al;" "syscall;" ); for (;;); } commit 9d7e30036405317812229f15e207ddf382a51be5 Merge: ac0d468 2c3e8b6 Author: Ben Noordhuis Date: Mon Aug 13 15:51:12 2012 +0200 Merge branch 'v0.8' commit 2c3e8b6aa6427797af7afc003ea4a539577d5fa1 Author: Ben Noordhuis Date: Mon Aug 13 15:29:09 2012 +0200 build: rework -fvisibility=hidden detection Make the gcc_version macro conform with what node.js and v8 use. Important because node.js's common.gypi is going to export it soon. commit ac0d46851ae0eccd5131207234e08cd2ed2ed681 Author: Ben Noordhuis Date: Sun Aug 12 00:37:26 2012 +0200 unix: work around darwin bug, don't poll() on pipe poll() on newer versions of OS X sets POLLHUP|POLLIN whereas older versions (and other Unices) only set POLLHUP. It was tripping up a check that expected to read data when POLLIN was set. While easy to work around, I switched it to a blocking read instead: it's less code and avoids surprises like the one above altogether. Fixes #522. commit 23dc564f3bafb3bcd4c00a687c74f77e3a306846 Author: Fedor Indutny Date: Sat Jul 21 12:49:35 2012 +0400 darwin: emulate fdatasync() with fcntl(F_FULLFSYNC) OS X has no public API for fdatasync. And as pointed out in `man fsync(2)`: For applications that require tighter guarantees about the integrity of their data, Mac OS X provides the F_FULLFSYNC fcntl. The F_FULLFSYNC fcntl asks the drive to flush all buffered data to permanent storage. Applications, such as databases, that require a strict ordering of writes should use F_FULLFSYNC to ensure that their data is written in the order they expect. Please see fcntl(2) for more detail. commit 837edf4c0f60aa6384b4ed1f7bf2ca58d1db58fc Author: Ben Noordhuis Date: Fri Aug 10 01:55:21 2012 +0200 unix, windows: remove handle init counters Remove the handle init counters, no one uses them. commit caa79af2ad6cc46c9ce414f6c213e3978ae6f68f Author: Ben Noordhuis Date: Fri Aug 10 01:45:40 2012 +0200 unix: rework uv_eio_init() init once logic Don't use counters.eio_init to track if libeio has been initialized, it's going to be removed in a follow-up commit. commit 75ba6819135d4bd3a7ed93ad5f625d56c65e3102 Author: Ben Noordhuis Date: Wed Aug 8 14:42:34 2012 +0200 unix: remove dependency on ev_child commit ee50db6e36d97d62d4e52ca2097b06664b794135 Author: Ben Noordhuis Date: Tue Jul 10 02:13:49 2012 +0200 unix, windows: preliminary signal handler support * a no-op on Windows for now * only supports the main loop on UNIX (again, for now) commit 5143d54ad36a020ddbe0d44ea9c98c06e31186e6 Author: Trond Norbye Date: Tue Aug 7 12:22:28 2012 +0200 Allow inclusion of with Sun Studio compiler The Sun Studio compiler did not define any of the symbols used to determine if the system was a unix-like system or not causing it to include the windows header. commit cbb930024fc86aaf4edfbce71ea39b5ea520e973 Author: Trond Norbye Date: Tue Aug 7 10:20:11 2012 +0200 Allow headers to be included with -Werror and -Wundef Users of the library may enforce a stricter set of compiler warnings causing their builds to fail due to warnings emitted from the headers. commit d4737abd6d1c9348fd2e69aa27d796a148a58219 Author: Ben Noordhuis Date: Wed Aug 8 22:49:27 2012 +0200 unix: remove dead code in process.c uv_spawn() saves and restores the environ in case the child clobbers it - which is impossible because the child process runs in a separate address space. commit 47f496aa65fd5e380df2f5e2d3a9c66e0b3fbb7d Author: Ben Noordhuis Date: Wed Aug 8 18:50:32 2012 +0200 unix: simplify stdio handling in process.c commit 13467a40d403446e85dc80c6c7570b92f75eaa6f Author: Ben Noordhuis Date: Wed Aug 8 18:28:16 2012 +0200 unix: retrieve execve() errors in process.c Make the forked child process send the errno to its parent process when it fails to spawn a new process. commit bf28aa4e784785ea4f92dd250b82e24535d5a1df Author: Ben Noordhuis Date: Wed Aug 8 14:44:36 2012 +0200 unix: drop SPAWN_WAIT_EXEC guard in process.c Code cleanup. This "experimental" feature was always enabled anyway, might as well remove the define guard. commit a1157cef3741984bd3b3d9564defadb35bccd20a Author: Bert Belder Date: Wed Aug 8 02:24:48 2012 +0200 windows: don't duplicate invalid stdio handles Ref: joyent/node#3779 commit 21f2c1629a242c0d61fcadd485542b8ec22d6988 Author: Ben Noordhuis Date: Wed Aug 8 02:18:02 2012 +0200 include: fix macro formatting commit 00d2f22151d5812a58cbae3df8b12e0a52f70e97 Author: Bert Belder Date: Wed Aug 8 02:18:53 2012 +0200 windows: fix typos in process-stdio.c commit f3720243421ea1ee925dd629e6dffef8b37bd9eb Author: Ben Noordhuis Date: Tue Aug 7 22:01:24 2012 +0200 include: link to Nikhil Marathe's libuv ebook commit f97c80fa98924f21ee12061023862b397bc2cf35 Author: Ben Noordhuis Date: Tue Aug 7 21:26:02 2012 +0200 unix: fix const correctness compiler warning commit 41b1265af8329131154539cb0d1eda57758b62be Author: Bert Belder Date: Tue Aug 7 00:59:14 2012 +0200 Rip out c-ares commit a06995699622fd25125373e1992b8ceffd85efb1 Author: Bert Belder Date: Tue Aug 7 00:34:36 2012 +0200 Remove c-ares integrations commit 35c4858231b6f38d16e9c8a64cb0f14e9c1919b4 Author: Bert Belder Date: Tue Aug 7 00:30:34 2012 +0200 Remove c-ares tests and benchmarks commit 3a8bb3b2b1aae1d254eee0da62f55a2a8e921011 Author: Bert Belder Date: Mon Aug 6 23:55:19 2012 +0200 Use uv_inet_ntop/uv_inet_pton, instead of the c-ares implementations commit 32f93e14cbeea53ac8e2fc1dc77207dc6b251003 Author: Bert Belder Date: Mon Aug 6 23:54:09 2012 +0200 Add libuv-ified versions of inet_pton and inet_ntop commit 3b46285ff8dee216666b98e508b21392c351b75a Author: Bert Belder Date: Tue Aug 7 01:01:50 2012 +0200 windows: remove libeio mentions from Makefile Libeio is not used on Windows. commit 32da23988bd451b4e8dbf32cc17ba652824f5112 Merge: 9f7cdb2 dfb6be0 Author: Bert Belder Date: Sun Aug 5 23:51:04 2012 +0200 Merge branch 'v0.8' Conflicts: src/unix/sunos.c commit dfb6be0e07f298fb6def24078ca6ed5bb3a0eba3 Author: Bert Belder Date: Fri Aug 3 17:37:22 2012 +0200 windows: map WSANO_DATA to UV_ENOENT This improves uv_getaddrinfo error reporting. commit 9f7cdb20aa29c99a0917ca776bc705f5ef947737 Author: Ben Noordhuis Date: Sun Jul 29 03:07:39 2012 +0200 unix: add relaxed accept() setting Mitigates unfair scheduling in multi-process setups that share a single listen socket across multiple processes. commit 6209fe51f0e539a30a7dc3a0770e8c78439c93e3 Author: Bert Belder Date: Wed Aug 1 01:09:07 2012 +0200 windows: invalid stdio handles should be INVALID_HANDLE_VALUE and not NULL commit 109e176ae2b353df8c0ccd07ce26efb4fac326ef Author: Bert Belder Date: Wed Aug 1 00:31:31 2012 +0200 windows: only allow opening directories for reading This is closer to the Posix model. commit 69c2ef8acc01da9497e687a5fd25cad971fe69ef Author: Bert Belder Date: Tue Jul 31 21:08:26 2012 +0200 windows: initialize uv_fs_t.path to NULL This shouldn't be necessary, but node v0.8 relies on it. commit 9d71d1cab5fbed7d96cb03a58887f052b01ccc3e Author: Bert Belder Date: Tue Jul 31 19:38:43 2012 +0200 windows/uv_spawn: ignore errors when duplicating fd 0-2 fails Hopefully this fixes joyent/node#3779. commit ed2bc23346ac1a665668e3328c62782f47ee3dbe Author: Bert Belder Date: Tue Jul 31 17:00:15 2012 +0200 windows: fix the MinGW build commit 7f6b86c6879e67d1c07260f72b4e368c1c27a5ee Author: Bert Belder Date: Tue Jul 31 16:52:31 2012 +0200 windows: improve uv_fs_unlink * It's now more efficient, the file is not opened twice. * It no longer allows deletion of non-symlink directory reparse points. commit 7edc29a41419b478f1388bf3e0d1d88d8672bf49 Author: Bert Belder Date: Tue Jul 31 16:51:11 2012 +0200 windows: fix regression in uv_fs_link Old and new path were accidentally reversed. commit d192a317aa3388de5cb59b9ebe0a1057f7aaafc9 Author: Ben Noordhuis Date: Tue Jul 31 16:55:31 2012 +0200 sunos: workaround OS bug to prevent fs.watch() from spinning This is a back-port of commit cfb06db from the master branch. Fixes joyent/node#3768. commit cfb06db5e5998571efeef54dc40484d11610dbbf Author: Bryan Cantrill Date: Sun Jul 29 20:51:40 2012 -0300 sunos: workaround OS bug to prevent fs.watch() from spinning Fixes joyent/node#3768. commit 8f66bfcee05f12e59aa70d0154ef329c03f10530 Author: Alan Gutierrez Date: Mon Jul 30 14:05:13 2012 -0400 doc: add 'Intro to libuv' link to README Add a link to 'An Introduction to libuv' to the documentation section of README.md. Format the section as a bullet list. commit 4168855da57f4f7b2552cbf3f718761ab7f47e77 Author: Ben Noordhuis Date: Mon Jul 30 14:26:50 2012 +0200 include: move ssize_t workaround to uv-win.h commit 514265ec6ec79365f8e691b6a02ed9bb6ae128cd Author: Bert Belder Date: Mon Jul 30 23:52:22 2012 +0200 windows: fix memory leaks in fs Also clean up the code in various ways. commit 4eccb2ee525d5d5872ce185b59ba4f48f27af9a4 Author: Ben Noordhuis Date: Mon Jul 30 14:26:50 2012 +0200 include: move ssize_t workaround to uv-win.h commit 1d5eb914742962b75ed868f19ee712fad266dfc0 Author: Bert Belder Date: Mon Jul 30 11:00:37 2012 +0200 Avoid compiler warning commit be1032431d500d492e94e556bb5e3cf67000a713 Merge: 9123482 4fe1916 Author: Ben Noordhuis Date: Sun Jul 29 03:13:21 2012 +0200 Merge branch 'v0.8' commit 4fe1916926f9e0deb904179e55501da426cd434f Author: Ben Noordhuis Date: Sat Jul 28 16:11:59 2012 +0200 linux: fix 'two watchers, one path' segfault Problem: registering two uv_fs_event_t watchers for the same path, then closing them, caused a segmentation fault. While active, the watchers didn't work right either, only one would receive events. Cause: each watcher has a wd (watch descriptor) that's used as its key in a binary tree. When you call inotify_watch_add() twice with the same path, the second call doesn't return a new wd - it returns the existing one. That in turn resulted in the first handle getting ousted from the binary tree, leaving dangling pointers. This commit addresses that by storing the watchers in a queue and storing the queue in the binary tree instead of storing the watchers directly in the tree. Fixes joyent/node#3789. commit ec76a42515156364f9dc57d4b85acca47fedc2ca Author: Ben Noordhuis Date: Sat Jul 28 14:56:36 2012 +0200 test: add uv_loop_t to benchmark-sizes.c commit 4fe369b179024f539637dc0255e454c405310444 Author: Ben Noordhuis Date: Sat Jul 28 14:47:20 2012 +0200 test: add uv_fs_event_t to benchmark-sizes.c commit b5b8ead8089ed3eef039c68bccd8021cfc092446 Author: Ben Noordhuis Date: Sat Jul 28 14:40:01 2012 +0200 test: add failing fs_event test Watches the same file twice. Fails on Linux with a segmentation fault. commit 912348261e68b520caf00e79d2d6bc26aaa6e1ce Author: Ben Noordhuis Date: Fri Jul 27 16:04:13 2012 +0200 include: update confusing uv_write comment commit cf05c5f0d6af680e535743b262a8701bd96a05f5 Author: Ben Noordhuis Date: Fri Jul 27 15:13:27 2012 +0200 Raise UV_ECANCELED on premature close. Set the error code to the more appropriate UV_ECANCELED instead of UV_EINTR when the handle is closed and there are in-flight requests. commit 9f59e8e38c2fbc04043cd1131ef3dc2f6bd331ba Author: Ben Noordhuis Date: Fri Jul 27 14:44:06 2012 +0200 include: update uv_close documentation commit 22f004db61c11f63ed07da2a326c7edbbfee5730 Author: Shuhei Tanuma Date: Sat Jul 21 22:29:55 2012 +0900 unix: don't abort() when trylock functions return EBUSY Fixes #500. commit 94355e4718a788c5f2d97f1d9da34cbcd2c74b03 Author: Ben Noordhuis Date: Fri Jul 13 17:07:11 2012 +0200 unix: fix format string vulnerability in freebsd.c uv_set_process_title() was susceptible to a format string vulnerability: $ node -e 'process.title = Array(42).join("%s")' Segmentation fault: 11 (core dumped) The fix is trivial - call setproctitle("%s", s) instead of setproctitle(s) - but valgrind complains loudly about reads from and writes to uninitialized memory in libc. It's not a libuv bug because the test case below triggers the same warnings: #include #include int main(void) { setproctitle("%s", "test"); return 0; } That's why this commit replaces setproctitle() with sysctl(KERN_PROC_ARGS). This commit reapplies commit a9f6f06, which got reverted in 69a6afe. The revert turned out to be unnecessary. commit ff59525c7e70b0c1c1ba11ed65ad3f1c6ddf92f1 Author: Ben Noordhuis Date: Thu Jul 19 16:25:49 2012 +0200 unix: fix uv_pipe_connect() with existing fd Don't create a new socket descriptor if one has been previously assigned with uv_pipe_open(). commit e3a28508b230b902f996045c0f852d1d728b5724 Author: Ben Noordhuis Date: Thu Jul 19 16:13:42 2012 +0200 unix: fix errno reporting in uv_pipe_connect() Remember the errno when the socket() syscall fails. commit 69a6afea63faba510e83cefb53cf4cd77d8dcd6f Author: Ben Noordhuis Date: Wed Jul 18 22:49:49 2012 +0200 unix: undo changes to uv_set_process_title() It's making node.js crash when run as root. Backtrace: (gdb) bt #0 0x00007fff856e3ff9 in __findenv () #1 0x00007fff856e404c in getenv () #2 0x000000010004c850 in loop_init (loop=0x10045a792, flags=8) at ev.c:1707 #3 0x000000010004cb3b in ev_backend [inlined] () at /Users/tjfontaine/Development/node/deps/uv/src/unix/ev/ev.c:2090 #4 0x000000010004cb3b in ev_default_loop (flags=1606417108) at ev.c:2092 #5 0x000000010004e5c6 in uv__loop_init (loop=0x10066e330, default_loop=1) at loop.c:52 #6 0x0000000100044367 in uv_default_loop () at core.c:196 #7 0x0000000100004625 in node::Init (argc=1606417456, argv=0x100b0f490) at node.cc:2761 #8 0x000000010000797d in node::Start (argc=1606417600, argv=0x0) at node.cc:2888 #9 0x0000000100000ca4 in start () This reverts commits: b49d6f7 unix: fix uv_set_process_title() a9f6f06 unix: fix format string vulnerability in freebsd.c a87abc7 unix: avoid buffer overflow in proctitle.c dc97d44 unix: move uv_set_process_title() to proctitle.c commit b49d6f7c30420d843a84c7afbe6c3498fbc3ac57 Author: Ben Noordhuis Date: Wed Jul 18 00:22:06 2012 +0200 unix: fix uv_set_process_title() Use strncpy() to set the process title, it pads the remainder with nul bytes. Avoids garbage output on systems where `ps aux` prints the entire proctitle buffer, not just the characters up to the first '\0'. Fixes joyent/node#3726. commit a9f6f06feaf02ebb48d4b41bd2ac47fcb2096a00 Author: Ben Noordhuis Date: Fri Jul 13 17:07:11 2012 +0200 unix: fix format string vulnerability in freebsd.c uv_set_process_title() was susceptible to a format string vulnerability: $ node -e 'process.title = Array(42).join("%s")' Segmentation fault: 11 (core dumped) The fix is trivial - call setproctitle("%s", s) instead of setproctitle(s) - but valgrind complains loudly about reads from and writes to uninitialized memory in libc. It's not a libuv bug because the test case below triggers the same warnings: #include #include #include #include int main(void) { setproctitle("%s", "test"); return 0; } That's why this commit replaces setproctitle() with sysctl(KERN_PROC_ARGS). commit a87abc7070dee4b7896c3c499bc3f0ba0a600b5a Author: Ben Noordhuis Date: Fri Jul 13 15:03:37 2012 +0200 unix: avoid buffer overflow in proctitle.c Get/set process title with uv_strlcpy(), not strncpy(). The latter won't zero-terminate the result if the destination buffer is too small. commit dc97d44c561c2e2b6a38d78ae814f4df7e8e20b5 Author: Fedor Indutny Date: Wed Jul 11 19:54:29 2012 +0400 unix: move uv_set_process_title() to proctitle.c Use hijacking argv array to change process' title. It seems to be working fine on almost every platform (at least it should not break anything as it's used in nginx in a similar way). commit 3726dee5e932563bdfce5b545023efe326b18544 Author: Fedor Indutny Date: Sun Jul 8 11:44:05 2012 -0400 unix: thread: use mach semaphores on osx commit ad382bcac0d01e53759a82ac35988917043d37e6 Author: Ben Noordhuis Date: Mon Jul 9 18:46:57 2012 +0200 test: add missing return statement commit c5761f72b32b8d524df0d961102741050c551ae0 Author: Ben Noordhuis Date: Mon Jul 9 02:46:19 2012 +0200 unix: speed up uv_async_send() some more still __sync_val_compare_and_swap() emits a CMPXCHG instruction on i386 and x86_64. Use XCHG instead, it's about four times faster. commit be09be7f3efd349d3bb9e7ed07d08b9155cabbb1 Author: Ben Noordhuis Date: Wed Jul 4 14:06:35 2012 +0200 unix: fix memory corruption in freebsd.c commit 68b0c85c0958e7b057c28c2ef0c50dfb632a28aa Author: Ben Noordhuis Date: Tue Jul 3 21:25:10 2012 +0200 test: allow 80 ms intervals in hrtime test The hrtimer functionality on my FreeBSD 9 system is fairly coarse, it's usually just over the 60 ms that we tested for before this commit. commit 5031a5b85a3f22836d41a2e86620ed72836c8824 Author: Ben Noordhuis Date: Fri Jun 22 18:31:29 2012 +0200 unix: rename linux/core.c to linux/linux-core.c This is a back-port of commit e1320757 from the master branch. Newer versions of gyp do not support files with the same basenames (example: core.c and linux/core.c). The nominal reason is consistency across build systems. Apparently, msbuild doesn't support it either. Somewhere, someplace, baby Jesus cries sad little tears... Fixes #464. commit 3d9c1ebfeb3fe37a368fd8ab7e94ebcf411878ab Author: Ben Noordhuis Date: Mon Jul 2 04:27:22 2012 +0200 unix: speed up uv_async_send() some more Use atomic compare-and-swap to detect if we've been preempted by another thread and therefore can avoid making the expensive write() syscall. Speeds up the heavily contended case by about 1-2% and has little if any impact on the non-contended case. I wasn't able to measure the difference at any rate. commit a2204abc8eae243ca10ad1555f9934b41a02efc1 Author: Ben Noordhuis Date: Mon Jul 2 03:56:18 2012 +0200 bench: improve async_pummel benchmark Benchmark the performance of uv_async_send() when the handle is contended for by 1, 2, 4 or 8 threads. commit cc1b3de2473231edfb8a078e90c2cbb14392316e Author: Ben Noordhuis Date: Mon Jul 2 00:00:20 2012 +0200 unix: revert 0971598, obsoleted by 889ab21 commit 889ab216aeffa6ea3ceee946cdff04f8c9e5041a Author: Ben Noordhuis Date: Sun Jul 1 23:54:24 2012 +0200 unix: fix 'zero handles, one request' busy loop Fixes #484. commit 3b8c0da5a53b47174e173d2cba3c824d307b20c4 Author: Ben Noordhuis Date: Sat Jun 30 03:10:08 2012 +0200 unix: fix busy loop on unexpected tcp message Don't start reading immediately after connecting. If the server sends a message and the client hasn't called uv_read_start() yet, the event loop will busy loop because the pending message keeps waking it up. commit 1d1dd9bb7dc0da40296ab02e011b610bca4d93c5 Author: Ben Noordhuis Date: Sat Jun 30 02:59:29 2012 +0200 test: add 'unexpected read' tcp test Regression test that verifies that the event loop doesn't busy loop when the server sends a message and the client isn't reading. commit 0971598d025a4ef13430912e7b5cb931438a2333 Author: Ben Noordhuis Date: Fri Jun 29 19:16:40 2012 +0200 unix: fix EINPROGRESS busy loop Don't make the event loop spin when connect() returns EINPROGRESS. Test case: #include "uv.h" static void connect_cb(uv_connect_t* req, int status) { // ... } int main() { uv_tcp_t handle; uv_connect_t req; struct sockaddr_in addr; addr = uv_ip4_addr("8.8.8.8", 1234); // unreachable uv_tcp_init(uv_default_loop(), &handle); uv_tcp_connect(&req, (uv_stream_t*)&handle, addr, connect_cb); uv_run(uv_default_loop()); // busy loops until connection times out return 0; } After EINPROGRESS, there are zero active handles and one active request. That in turn makes uv__poll_timeout() believe that it should merely poll, not block, in epoll() / kqueue() / port_getn(). Sidestep that by artificially starting the handle on connect() and stopping it again once the TCP handshake completes / is rejected / times out. It's a slightly hacky approach because I don't want to change the ABI of the stable branch. I'll address it properly in the master branch. commit 1a6b6b781c1b30ed6ff694d934c7dac4f975cf81 Author: Ben Noordhuis Date: Fri Jun 29 18:43:44 2012 +0200 unix: deduplicate socket creation code in tcp.c Incidentally fixes a rather obscure bug where uv_tcp_connect() reconnected and leaked a file descriptor when the handle was already busy connecting, handle->fd was zero (unlikely) and uv_tcp_connect() got called again. commit e4a68bb5cb1eff1df1358d348b33e973eb9962d9 Author: Ben Noordhuis Date: Fri Jun 29 18:21:50 2012 +0200 unix: move uv__connect() to tcp.c commit 700f1333e157b37566dd7ed0c3bb889f8473d0c8 Merge: e9b17bc 7628b65 Author: Bert Belder Date: Fri Jun 29 06:05:06 2012 +0200 Merge branch 'v0.8' commit 7628b6597e0d585668a8ed2da182b9fd3c5901db Author: Bert Belder Date: Fri Jun 29 05:44:20 2012 +0200 test: fix test-gethostbyname to not use a DNS server on localhost Because, you know, not everybody has one. commit e9b17bcc65daf2c68022a1c49cde5b243d3429ad Author: Bert Belder Date: Fri Jun 29 05:23:30 2012 +0200 Revert "test: improve clean-up in test-fs-event" There were too many errors in this commits; it totally broke on Windows. Besides, when the moon is dark, the cleanup code could delete some random files from my hard drive. This reverts commit 7573f4a4c4072fe90b448fe748bf27e53bee1c30. commit 5ee80f1a7a07eac257e497833c9db58ee5d8ba3a Author: Saúl Ibarra Corretgé Date: Thu Jun 28 08:48:54 2012 +0200 c-ares: ignore rogue DNS servers reported by windows commit 15cfcfd309526cb687c677124f33dea6e4d14cb9 Author: Ben Noordhuis Date: Wed Apr 25 06:27:39 2012 -0700 c-ares: libuv-ify c-ares commit 3e425ab9ba813c700f337f27585312bc058bd6a1 Author: Saúl Ibarra Corretgé Date: Wed Apr 25 05:30:47 2012 -0700 c-ares: upgrade to 1.9.0 commit 937d2c93ea2c826ae579ae93b7c2745c4b950cc6 Author: Bert Belder Date: Sun Apr 29 03:40:03 2012 +0200 test: fix test-gethostbyname to not use a DNS server on localhost Because, you know, not everybody has one. commit 4c87666a9363ab01010c426e1b7dfb432dec844e Author: Ben Noordhuis Date: Fri Jun 29 03:17:04 2012 +0200 unix: speed up uv_async_send() Don't make a syscall when the handle is already pending. Speeds up the async_pummel benchmark by about 13%. commit c89df5b99095b1555d12249532b1f340a4dda773 Author: Ben Noordhuis Date: Fri Jun 29 03:16:06 2012 +0200 bench: add another async handle benchmark commit f90d428b2962ecd30dcd31ef802517c51fd77337 Author: Ben Noordhuis Date: Fri Jun 29 02:32:48 2012 +0200 test: fix unused function warning exit_cb_unexpected() is only used on Windows. commit 13747033f8a2ee03b232606995d3a4035446d0fa Author: Ben Noordhuis Date: Fri Jun 29 02:32:35 2012 +0200 test: remove unused function poll_cb_fail() commit 3b209e76425eaf7f9375c9938452ff3f255d4345 Author: Ben Noordhuis Date: Thu Jun 28 19:04:39 2012 +0200 bench: add async handle benchmark commit 123ca8b87e73ad7f613e44f0d4fac65c7468862e Author: Ben Noordhuis Date: Thu Jun 28 19:03:53 2012 +0200 test: make fmt() function global commit b779a0db74297e7577953b6e8d509b0fe2290818 Merge: c6f2ef2 5b8a112 Author: Ben Noordhuis Date: Fri Jun 29 02:28:57 2012 +0200 Merge branch 'v0.8' commit 5b8a1127fedb80a282f2587f6b0ccae2b591ff36 Author: Ben Noordhuis Date: Thu Jun 28 19:01:34 2012 +0200 darwin: compile at -O0 in debug builds commit f6a02fbe763aec5d290aa9d9509aeec5348c7792 Author: Ben Noordhuis Date: Fri Jun 29 02:23:39 2012 +0200 linux: don't use accept4() syscall after ENOSYS Repeatedly calling the syscall when it's not supported has a small but measurable performance impact. Besides, it's a silly thing to do. commit 27cd5f03ef26b32b0043ae67bb2dae9dabda60bf Author: Ben Noordhuis Date: Fri Jun 29 02:11:38 2012 +0200 linux: fix accept4() ENOSYS detection on i386 accept4() piggybacks on the socketcall() on i386. socketcall() has the flaw that it returns EINVAL instead of ENOSYS when the operation is not supported. The problem is that accept4() also returns EINVAL when its flag argument is invalid. Try to discern between the two failure cases to the best of our abilities. commit 4a88b3b4b72de79d8a6f3107a200f6f960f475a7 Author: Bert Belder Date: Thu Jun 28 05:07:18 2012 +0200 windows: don't inhibit reparse behavior when non-symlink is encountered This fixes the issue that a mount point would be treated as a symlink, but readlink would subsequently return an NT namespaced path that is unusable for many purposes. This also pre-emptively fixes the problems that would arise when an user has a reparse point whose tag is neither IO_REPARSE_TAG_MOUNT_POINT nor IO_REPARSE_TAG_SYMLINK. Finally uv_lstat() will now return the correct length in st_size. Previously the length was computed incorrectly for relative symlinks, and those that had non-ascii characters in their target. commit 1b6843482a3c9834b82b138e8823bc3dae5c7d2d Author: Ben Noordhuis Date: Thu Jun 28 01:35:45 2012 +0200 unix: assume that dlopen() clobbers dlerror() Or rather, don't assume that dlopen() does *not* clobber dlerror(). Joe Ferner reports that loading libjava on OS X sets dlerror() even when dlopen() succeeds, which makes uv_dlopen() raise an error when it shouldn't. I haven't been able to reproduce it but it's possible that libjava clobbers dlerror() by trying (and failing) to load other libraries. At any rate, Joe confirmed that this patch addresses the issue. Fixes #462. commit 4d42af20e389fa3c3fa63dcd57883071421d25b8 Author: Ben Noordhuis Date: Tue Jun 26 18:25:54 2012 +0200 unix: don't create connect req when connect() fails Fixes a lifecycle issue where the req got created, added to the list of active reqs but wasn't properly activated because uv__connect() returned early. commit 5a0f3411fcceefa1561d1e7b58e0df23057e7ceb Author: Roman Neuhauser Date: Mon Jun 25 10:55:46 2012 +0200 unix: map ENODEV to UV_ENODEV produces better error message from test-dgram-multicast-multi-process when run w/o network. before: === release test-dgram-multicast-multi-process === Path: simple/test-dgram-multicast-multi-process dgram.js:287 throw new errnoException(errno, 'addMembership'); ^ Error: addMembership Unknown system errno 19 at new errnoException (dgram.js:356:11) at Socket.addMembership (dgram.js:287:11) at Object. (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:487:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) [PARENT] Worker 9223 died. 1 dead of 3 dgram.js:287 throw new errnoException(errno, 'addMembership'); ^ Error: addMembership Unknown system errno 19 at new errnoException (dgram.js:356:11) at Socket.addMembership (dgram.js:287:11) at Object. (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:487:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) [PARENT] sent 'First message to send' to 224.0.0.114:12346 dgram.js:287 [PARENT] sent 'Second message to send' to 224.0.0.114:12346 throw new errnoException(errno, 'addMembership'); [PARENT] sent 'Third message to send' to 224.0.0.114:12346 ^ [PARENT] sendSocket closed [PARENT] Worker 9224 died. 2 dead of 3 Error: addMembership Unknown system errno 19 at new errnoException (dgram.js:356:11) at Socket.addMembership (dgram.js:287:11) at Object. (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:487:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) [PARENT] Worker 9225 died. 3 dead of 3 [PARENT] All workers have died. [PARENT] Fail Command: out/Release/node /home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js after: === release test-dgram-multicast-multi-process === Path: simple/test-dgram-multicast-multi-process dgram.js:287 throw new errnoException(errno, 'addMembership'); ^ Error: addMembership ENODEV at new errnoException (dgram.js:356:11) at Socket.addMembership (dgram.js:287:11) at Object. (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:487:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) [PARENT] Worker 13141 died. 1 dead of 3 dgram.js:287 throw new errnoException(errno, 'addMembership'); ^ [PARENT] sent 'First message to send' to 224.0.0.114:12346 [PARENT] sent 'Second message to send' to 224.0.0.114:12346 [PARENT] sent 'Third message to send' to 224.0.0.114:12346 [PARENT] sent 'Fourth message to send' to 224.0.0.114:12346 [PARENT] sendSocket closed dgram.js:287 throw new errnoException(errno, 'addMembership'); ^ Error: addMembership ENODEV at new errnoException (dgram.js:356:11) at Socket.addMembership (dgram.js:287:11) at Object. (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:487:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) [PARENT] Worker 13142 died. 2 dead of 3 Error: addMembership ENODEV at new errnoException (dgram.js:356:11) at Socket.addMembership (dgram.js:287:11) at Object. (/home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js:224:16) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:487:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) [PARENT] Worker 13143 died. 3 dead of 3 [PARENT] All workers have died. [PARENT] Fail Command: out/Release/node /home/roman/wc/node/test/simple/test-dgram-multicast-multi-process.js commit c6f2ef25c62bc539db205b321cd7eacfb0c0bdcc Author: Shigeki Ohtsu Date: Tue Jun 26 22:26:16 2012 +0900 uv.h: add members to any-union of handle and req commit f3fd8e3c1bf91be635ebee118ebe475c632a32c0 Author: Charlie McConnell Date: Mon Jun 25 14:51:52 2012 -0700 test: prevent running the tests as root commit 7573f4a4c4072fe90b448fe748bf27e53bee1c30 Author: Charlie McConnell Date: Mon Jun 25 14:00:15 2012 -0700 test: improve clean-up in test-fs-event Failed tests would leave behind extra files, and some tests weren't cleaning up properly in the first place - this adds a cleanup_watch_dir() helper method to make all the fs-event tests more consistent. commit a416a585b25c51a3ded8be2fc7b3bf4559be7279 Merge: 34fb759 d0816aa Author: Ben Noordhuis Date: Mon Jun 25 16:53:29 2012 +0200 Merge branch 'v0.8' commit d0816aae5267bcfd09a052bfd9ea2ef91a6bdbee Author: Ben Noordhuis Date: Mon Jun 25 16:49:56 2012 +0200 sunos: fix free() of non-malloc'd pointer commit 431d61af31ef84de3b9caa18e276574489f7ae77 Author: saghul Date: Sun Jun 10 00:49:13 2012 +0200 win: map ERROR_PRIVILEGE_NOT_HELD to UV_EPERM commit 34fb759508fe05ccef6631edb5126d93f07e08c5 Author: Ben Noordhuis Date: Mon Jun 25 03:58:17 2012 +0200 Update AUTHORS commit aec320b76ce18f022ce683f99b9fc759f66f46c5 Author: Xidorn Quan Date: Mon Jun 25 09:14:27 2012 +0800 darwin: get cpu model correctly on mac commit 0005b52b705634ae2b09470bb06df1128a870fb8 Author: Ben Noordhuis Date: Mon Jun 25 01:25:00 2012 +0200 Update uv_getaddrinfo_cb prototype. Make it clear that the first argument is a req, not a handle. commit 0fde10825e0cc65fa476738a74e631c2aab0752b Author: Ben Noordhuis Date: Sun Jun 24 06:04:29 2012 +0200 linux: set close-on-exec flag with ioctl(FIOCLEX) ioctl(FIOCLEX) is 25% faster than fcntl(F_SETFD) on a stock 2.6.32 kernel. commit e21cdf1e0d373ccaf01e0103e76882dcb1623fab Author: Ben Noordhuis Date: Sat Jun 23 04:08:05 2012 +0200 unix: malloc only once in uv_getaddrinfo() commit 61f04877a77dd47973b2c2178a9b5b644e55284f Author: Ben Noordhuis Date: Sat Jun 23 01:20:51 2012 +0200 Update uv_getaddrinfo() documentation. commit d831e52e4547a6df9216f96e66057429e92691d3 Author: Bert Belder Date: Fri Jun 22 20:44:08 2012 +0200 uv: now working on v0.9 commit 82340e96ccec1af60cabaa6921dda2f626d8d444 Merge: f91e6be 0387c23 Author: Bert Belder Date: Fri Jun 22 20:43:23 2012 +0200 Merge branch 'v0.8' commit 0387c23759e7ad1f7158ce69ce3185495c902c43 Author: Bert Belder Date: Fri Jun 22 19:18:10 2012 +0200 windows: don't use CRT functions to implement (f)utimes and (f)stat commit 3da9504beb0a3208d25fe979c5639a2ae8a89742 Author: Bert Belder Date: Fri Jun 22 19:16:45 2012 +0200 windows: map ERROR_INVALID_HANDLE to UV_EBADF commit d0950dd491e7adb6800986ec4f1517e0693c6ec9 Author: Bert Belder Date: Fri Jun 22 19:16:59 2012 +0200 windows: whitespace fixes commit f91e6be07d16e4775dceaf2da7a0e8bd894276ba Author: Ben Noordhuis Date: Fri Jun 22 19:04:41 2012 +0200 linux: add epoll syscalls commit e132075738d6543956a8c3457ae1a9c87e9a587c Author: Ben Noordhuis Date: Fri Jun 22 18:31:29 2012 +0200 unix: rename linux/core.c to linux/linux-core.c Newer versions of gyp do not support files with the same basenames (example: core.c and linux/core.c). The nominal reason is consistency across build systems. Apparently, msbuild doesn't support it either. Somewhere, someplace, baby Jesus cries sad little tears... Fixes #464. commit 120a4af3eb5aaba96ff0cbd369784237189e0dda Author: Ben Noordhuis Date: Fri Jun 22 15:19:12 2012 +0000 sunos: remove unused field event_watcher commit 42df4cb7f6f3e8f3b4fc311eaa45f2c1b40de93d Author: Ben Noordhuis Date: Fri Jun 22 15:15:20 2012 +0000 sunos: fix use of pid_t in format string commit 2a5ff050dd05f899074a3a46fbe7e6f6172c1b5a Author: Ben Noordhuis Date: Fri Jun 22 15:10:43 2012 +0000 sunos: replace bzero with memset commit c222f075c31fd52bd7aa05098337093b1e36a9cf Author: Ben Noordhuis Date: Fri Jun 22 15:09:56 2012 +0000 sunos: replace ev_io with uv__io_t commit f01e9d708a110767f4629eaa3cf952b2d80c96bc Author: Ben Noordhuis Date: Fri Jun 22 16:39:20 2012 +0200 unix: clarify that uv_getaddrinfo_t is a req commit 171e2f71b90f21b5989deb1f2a1abb70561c6232 Author: Ben Noordhuis Date: Fri Jun 22 15:43:14 2012 +0200 Update libuv version macro. commit ea3e2cd48085203595a22d5e63b987215b97e534 Author: Bert Belder Date: Fri Jun 22 01:45:19 2012 +0200 windows: get rid of overly complicated uv_filetime_to_time_t helper commit d169ba1a1b02966f3b3ac316af28f17d25cd63b2 Author: Bert Belder Date: Fri Jun 22 01:16:52 2012 +0200 Make the stat benchmark run shorter Man, Windows is so slow... commit 5dc024f67656118a26442ff9f58b75cbeb56aa98 Author: Ben Noordhuis Date: Thu Jun 21 22:28:28 2012 +0200 bench: add thread pool I/O benchmark commit da59427c66ff04bf693284e726efa75661ea5f26 Author: Bert Belder Date: Thu Jun 21 02:37:44 2012 +0200 windows: don't set WT_EXECUTELONGFUNCTION for fs operations commit 14ffaa668d41ce265c8591a5ce40fe3b57ad8d43 Author: Ben Noordhuis Date: Wed Jun 20 16:22:18 2012 +0200 unix, windows: stat: never pass NULL to cb Never pass NULL to the fs_poll callback, use a zeroed out statbuf instead. Makes the interface a little more convenient to use. commit 6e8eb33249f7956f5ee82d80d801084e1d43411f Author: Bert Belder Date: Wed Jun 20 03:32:55 2012 +0200 windows: abort accept requests when a shared tcp server is closed Just closing the listening socket handle does not cancel AcceptEx operations when another handle is keeping the underlying socket open. Thus the AcceptEx operations have to be explicitly canceled in uv_tcp_close. commit b496c1221c3816f06a3fcd3e8c3efedcf6eb8445 Author: Bert Belder Date: Tue Jun 19 21:11:17 2012 +0200 windows: reserve some room for zero-read minibuffer commit 67090653df479088ac9d15f29f268ecca810a53d Author: Bert Belder Date: Tue Jun 19 19:19:53 2012 +0200 windows: set the child_pid property for all IPC pipes in uv_spawn commit 382f2a262bc0e643063415775b7081cedd0e94e1 Author: isaacs Date: Mon Jun 18 10:25:56 2012 -0700 sunos: allow suppression of ifaddrs.h Older Solaris versions do not have this feature. This allows them to set SUNOS_NO_IFADDRS to allow libuv to build. Re: joyent/node#3465 commit 61a6e06ec2e26093ad67ce1a04380d68ab3a5511 Author: Fedor Indutny Date: Tue Jun 19 00:02:56 2012 +0400 sunos: fix assertion errors in uv__finish_close commit c1d8e011f4c19333a014d6c5db9907bfd423c44b Author: Ben Noordhuis Date: Mon Jun 18 17:06:50 2012 +0200 linux: fix typo in syscall name commit 6d67cf1952d5bc5f416de58af604b8037f0d6e4f Author: Ben Noordhuis Date: Fri Jun 15 18:23:09 2012 +0200 unix, windows: update uv_fs_poll API * the callback gets called only once on error, not repeatedly... * ...unless the error reason changes from e.g. UV_ENOENT to UV_EACCES * the callback receives pointers to uv_statbuf_t objects so it can inspect what changed commit 7ca524e133b197c88916004e66fc62b9358ae385 Author: Ben Noordhuis Date: Fri Jun 15 15:54:02 2012 +0200 unix: stat: detect sub-second changes on darwin commit 5ff2b6121f1786964583dccd904a7a117835bb37 Author: Ben Noordhuis Date: Fri Jun 15 15:26:55 2012 +0200 unix: stat: detect sub-second changes on linux commit cc7c8542a52d11cc9b94882dc9d9dffef6b3fa3e Author: Ben Noordhuis Date: Thu Jun 14 07:30:08 2012 +0200 unix, windows: add stat() based file watcher Monitors a file path for changes. Supersedes ev_stat. commit 9a3dff35c019f021835c20eb09ed3f0995fb3940 Author: Bert Belder Date: Thu Jun 14 22:41:13 2012 +0200 test: make the test-hrtime less likely to time out commit b1649b6f77a3d4bad40a7d2e280c84681b0ea81e Author: Bert Belder Date: Thu Jun 14 21:18:12 2012 +0200 windows: prevent accidental inheritance of sockets pending acceptance commit 5d5688f24188b8e34e8e82ab41fbb4cdb3f3e305 Author: Bert Belder Date: Thu Jun 14 17:28:03 2012 +0200 unix: always set CLOEXEC flag for child process stdio FDs commit 2c983fb99489383e12b046a5682b5b12b00d9d19 Author: Ben Noordhuis Date: Thu Jun 14 03:47:26 2012 +0200 unix: fix memory leak in libev Not everything that identifies itself as glibc really is glibc. commit 4d7f1e1864983c9ffc76a52af3346777806767ee Author: Ben Noordhuis Date: Thu Jun 14 01:19:56 2012 +0200 unix: implement uv_disable_stdio_inheritance() commit ade693024195716504416a2bbf3c87df05fb2022 Author: Bert Belder Date: Thu Jun 14 01:19:52 2012 +0200 windows: implement uv_disable_stdio_inheritance commit 94cb06fecfb27ca252e1a4a2ac83488ff1787f23 Author: Ben Noordhuis Date: Thu Jun 14 00:46:57 2012 +0200 unix: make uv__nonblock() EINTR resilient It's underspecified if and when ioctl(FIONBIO) or fcntl() can return EINTR. Let's take the safe route. commit b3a97f89812b19b67a35906ad4ca7eb850be28f0 Author: Ben Noordhuis Date: Thu Jun 14 00:44:58 2012 +0200 unix: make uv__cloexec() EINTR resilient It's somewhat underspecified if and when fcntl() can return EINTR. It never does on Linux for F_GETFD or F_SETFD but let's not make any assumptions. commit 07c6ac2b553bfd7420fa62ecc1733c2ae28cfb0d Author: Bert Belder Date: Wed Jun 13 19:17:13 2012 +0200 windows: move child stdio buffer ops to a separate file commit 9f44b0e393f69aa85285eba836a822d3ca909516 Author: Bert Belder Date: Wed Jun 13 01:30:31 2012 +0200 windows: fix serious typo in init_child_stdio commit 95e89c6a0efec2d2228377cfdf55cd14b1b83536 Author: Ben Noordhuis Date: Wed Jun 13 01:17:33 2012 +0200 unix, windows: share uv__handle_init() commit b7e150ee917c07509515e1a7051fd8336c8f3e57 Author: Bert Belder Date: Tue Jun 12 16:57:56 2012 +0200 windows: uv_kill() should report UV_ESRC when the victim is already dead commit 048422d8654fd0804522f97f36179ecf3cfc5b15 Author: Bert Belder Date: Tue Jun 12 16:56:48 2012 +0200 windows: fix some comments commit 84f0d96ae04bc2c75b2f4bc6946ee781df5457c4 Author: Ben Noordhuis Date: Tue Jun 12 01:45:50 2012 +0200 unix: reset error status in uv_dlopen() Fixes a bug where uv_dlopen() mistakenly reported failure because of previous errors. commit e0c6114e32c1c79b6dca15654af90f8a741e1ce7 Author: Bert Belder Date: Mon Jun 11 17:13:31 2012 +0200 windows: remove run-time RB_INSERT check from release builds commit 3b417d10bce2492fdceeee9d03c0a96f6706693a Author: Ben Noordhuis Date: Sat Jun 9 20:06:16 2012 +0200 linux: add eventfd and eventfd2 syscalls commit 78bc0d61342d9c0f78c0a53d25668c53cb52fa00 Author: Ben Noordhuis Date: Mon Jun 11 04:13:57 2012 +0200 unix: implement async handles in libuv Replace libev backed async handles with a pure libuv implementation. commit ddb5f559228eec66231bd1f0e001fa591b51e7c2 Author: Ben Noordhuis Date: Mon Jun 11 02:47:39 2012 +0200 unix: simplify uv__make_pipe() and uv__make_socketpair() commit 5c304435559edb6d401d506e1ea606d6068a1487 Author: Bert Belder Date: Sat Jun 9 22:19:53 2012 +0200 unix: uv_async handles should not be unref'ed automatically commit fbe99743d5889a72112e1ce33af9e490bd39a677 Author: George Yohng Date: Sat Jun 9 22:30:18 2012 +0200 windows: uv_interface_addresses() should not report disconnected adapters commit 0ae026dc841e3c04ea2d285e17cd472d52d0ddbf Author: Ben Noordhuis Date: Sat Jun 9 18:42:06 2012 +0200 bench: add lots-of-timers benchmark commit c92788e503c3eabd6b21c6c91e1abdea27238699 Author: Maciej Małecki Date: Sat Jun 9 14:12:53 2012 +0200 test: fix test runner progress bar Make % completed indicator actually show % completed instead of 0 %. commit 6a47e3ac7c0ad6582b16f7283b1e959e9813ed5c Author: saghul Date: Fri Jun 8 19:33:26 2012 +0200 windows: add missing include for limits.h commit b5a15f5cdf4679775bd9e6baf0568d97dd588170 Author: Bert Belder Date: Fri Jun 8 03:10:35 2012 +0200 test: fix test-tcp-shutdown-after-write bug It was calling uv_read_start before the uv_connect call had completed. Although we want to allow this in the future, right now it's not supported. commit 23b4e38d206dff24de67470493e31ca06b18be29 Author: Ben Noordhuis Date: Fri Jun 8 02:47:13 2012 +0200 unix: make uv_shutdown() return UV_ENOTCONN Return UV_ENOTCONN when the stream is not connected, not UV_EINVAL. Aligns with uv-win. commit dea45940cd9436c27cba273535aabbcf86fd27d1 Author: Ben Noordhuis Date: Thu Jun 7 18:32:06 2012 +0200 unix: fix req cb / close cb invoke delay Finalization of closed handles and associated requests was sometimes delayed until an external event (network I/O, timeout, etc.) happened. This commit addresses that. commit 9cb8bdc74edef8e3503c260a2f07150d211a48a9 Author: Mark Cavage Date: Thu May 31 15:36:57 2012 +0000 sunos: uv_interface_addresses needlessly #ifdef'd out commit 053d3afcbf6ae0eb9d777c96ba8276e4806274cf Author: Ben Noordhuis Date: Thu Jun 7 16:26:36 2012 +0200 Make ngx_queue_foreach() impl more explicit. commit 59cda867091fcbd9e0455eaf4b034db57588b0e9 Author: Ben Noordhuis Date: Thu Jun 7 15:40:14 2012 +0200 unix, test: make NANOSEC a 64 bits unsigned int Avoids accidental overflow / truncation when it's used in 32 bits arithmetic. commit e2aa39aecfa5efd1fbeeb589220201b529430776 Author: Shigeki Ohtsu Date: Thu Jun 7 12:58:11 2012 +0900 test: change uv_hrtime() test to iterate upto 100 commit b47af98e00f8d2e2c2edc1ee39bd14b2fa1ace7e Author: Iñaki Baz Castillo Date: Wed Jun 6 16:00:53 2012 +0200 test: add tcp 'close on failed connect' test Demonstrates temporary event loop stall with uv-unix. The issue is that pending requests aren't processed until the next event (I/O, timeout, etc.) happens. See #446, #447 and #448. commit 649ad50c328851444998e3d2dea66ba5b48fe64b Author: Ben Noordhuis Date: Wed Jun 6 05:12:28 2012 +0200 unix: fix event loop stall Undoes most of the changes made to libev in 7d2ea31 and c9396dd. commit 6fe753022ff878fbc2925d763670e286c99c26a9 Author: Ben Noordhuis Date: Wed Jun 6 04:24:33 2012 +0200 unix, windows: add debug mode handle printer Debugging tool, prints a list of active/all handles. Not actively exported. commit 24f8a53f4ca74f4dc2405dfe897598ec86bf2133 Author: Bert Belder Date: Tue Jun 5 18:19:03 2012 +0200 windows: refactor uv_chdir implementation commit a0d2af0fd23bfc107e12aadb6ce2d6d98cb1e13f Author: Bert Belder Date: Tue Jun 5 18:18:27 2012 +0200 windows: detect when GetCurrentDirectoryW returns more than MAX_PATH chars This should never happen. However the CRT has a code path to deal with this situation, so at least detect it when it happens and return an error, instead of potentially opening a security hole. commit c8c9fe1c747d6955686c1cec21bda53c2e5592b8 Author: Ben Noordhuis Date: Tue Jun 5 15:42:17 2012 +0200 unix: move memset out of recvmsg inner loop commit 738b31eb3aff440ae75ff9f32ba61086a948c3f4 Author: Ben Noordhuis Date: Tue Jun 5 15:09:05 2012 +0200 unix: fix loop starvation under high network load uv__read() and uv__udp_recvmsg() read incoming data in a loop. If data comes in at high speeds, the kernel receive buffer never drains and said functions never terminate, stalling the event loop indefinitely. Limit the number of consecutive reads to 32 to stop that from happening. The number 32 was chosen at random. Empirically, it seems to maintain a high throughput while still making the event loop move forward at a reasonable pace. commit be9d1ce909c079d1be4fb77e59f5cbf0f0c57286 Author: Bert Belder Date: Tue Jun 5 00:05:08 2012 +0200 windows: cast STARTUP_INFO.cbReserved2 to WORD to avoid warnings commit 829eaf3e3f496eb11d9b25de995747a3aaed39e6 Author: Bert Belder Date: Tue Jun 5 00:04:16 2012 +0200 windows: cast OVERLAPPED.Internal to NTSTATUS to avoid warnings commit 1b75d36babd866532b4f2be22f842664cc487051 Author: Bert Belder Date: Mon Jun 4 19:05:15 2012 +0200 windows: refactor uv_exepath implementation commit c9f83e524cc1b357d5fbd7845f08339cd3cba21a Author: Bert Belder Date: Mon Jun 4 19:04:40 2012 +0200 windows: refactor uv_cwd implementation commit 7d2ea316183ba29a8ab5883593d1f6ee6f8f8ae3 Author: Ben Noordhuis Date: Mon Jun 4 23:18:32 2012 +0200 unix: fix event loop stall Stop libev from entering the epoll_wait/kevent/port_getn/etc. syscall when there are no active handles left, that will block indefinitely. commit 0dff0e7d47453fafb72a287c0acdddd6e3f2d9de Author: Bert Belder Date: Mon Jun 4 18:02:35 2012 +0200 test: avoid compiler warnings due to size_t truncation commit 64f8cf463d92a7d566dc1f1942175917dd41c930 Author: Bert Belder Date: Mon Jun 4 18:00:39 2012 +0200 windows, unix: uv_buf_init should take `unsigned int` for the buffer length commit c0b530d0798aeceeedfaa8bc74556e5da3a2e549 Author: Bert Belder Date: Mon Jun 4 16:43:00 2012 +0200 Windows: avoid compiler warning commit 60746b03cbe67bbbe506cf6682e14d0566b26b0b Author: Bert Belder Date: Mon Jun 4 16:25:28 2012 +0200 windows: move some stream functions to stream-inl.h commit 754a695df68b0a8146d8447ef2092048a954090c Author: Bert Belder Date: Mon Jun 4 16:30:52 2012 +0200 windows: move request macros to req-inl.h commit 63b9b1d47266d5c150fb72e6f38893c98a6b2847 Author: Bert Belder Date: Mon Jun 4 16:30:12 2012 +0200 windows: move handle macros to handle-inl.h commit 1974541bc933c21e559ceb18ada06b0939e23a43 Author: Bert Belder Date: Mon Jun 4 16:37:47 2012 +0200 windows: guard against including req-inl.h more than once commit 3b907cf0ec1cab7244069ae4395830da98925de0 Author: Bert Belder Date: Mon Jun 4 16:37:20 2012 +0200 windows: guard against including handle-inl.h more than once commit d08070435ddcc834b663c1c5b7bc0995db87e8e6 Author: Ben Noordhuis Date: Mon Jun 4 17:18:02 2012 +0200 test: rename test tcp_dont_connect_after_write Rename test tcp_dont_connect_after_write to tcp_connect_error_after_write, teensy tad more descriptive. commit 76fa1631175b58400b06c8e30812db7bfd4aff1e Author: Ben Noordhuis Date: Mon Jun 4 17:12:16 2012 +0200 test: add a 'write before connect' test commit cb9ca142b51906d85605e2af285821ddb27d6140 Author: Ben Noordhuis Date: Mon Jun 4 16:55:04 2012 +0200 unix: queue write reqs if stream is not connected commit a30e45f1d709cee2f3807cc461f250dab2d89630 Author: Fedor Indutny Date: Sat Jun 2 23:40:32 2012 +0700 unix: remap fds 0-2 to /dev/null if ignore flag set commit 97801c63157eb1969db4251f98d74c2601675490 Author: Ben Noordhuis Date: Mon Jun 4 16:07:08 2012 +0200 test: disable tcp_dont_connect_after_write on windows For now. See #444. commit b96ed68f46fb89d7595a83319282c17da12ee78d Author: Ben Noordhuis Date: Mon Jun 4 15:58:30 2012 +0200 test: add TCP connect error + write test Original test contributed by Iñaki Baz Castillo. See #443. commit c76c2066c64a3bd390e63eb08a00b0a0c106f445 Author: Ben Noordhuis Date: Sun Jun 3 03:17:21 2012 +0200 unix, windows: add semaphore functions commit 7d97ba80030ddf41946354a88e2f81cfacca949d Author: Ben Noordhuis Date: Sun Jun 3 04:01:26 2012 +0200 unix: make mutex sanity checks non-optional commit c03964f8400e70de1fa4ad913e4e64f027774916 Author: Ben Noordhuis Date: Sun Jun 3 03:52:22 2012 +0200 unix: set PTHREAD_MUTEX_ERRORCHECK in debug mode commit 28ed730bfbc3798eaddbc9d5d5438feb8deeb14f Author: Ben Noordhuis Date: Sun Jun 3 01:17:22 2012 +0200 test: fix implicit function declaration warnings Fixes the two following compiler warnings: ../test/run-tests.c: In function ‘maybe_run_test’: ../test/run-tests.c:117: warning: implicit declaration of function ‘write’ ../test/run-tests.c:118: warning: implicit declaration of function ‘fsync’ commit d8b95eaffbfbfc58dc7991554c8e669c6cd9f7d5 Author: Bert Belder Date: Sat Jun 2 23:38:16 2012 +0200 windows: inline a couple of handle functions commit d402604118cc76b0099083d0a82a774bc23cd05c Author: Bert Belder Date: Sat Jun 2 23:08:22 2012 +0200 windows: inline a couple of inline request functions commit ed30365f543819e70769df96ef2c5b018681960e Author: Bert Belder Date: Sat Jun 2 23:06:43 2012 +0200 uv-common: define INLINE macro commit dd1355da8dd5de14ff5174a4ab048bde593d4b8c Author: Bert Belder Date: Sat Jun 2 22:36:52 2012 +0200 windows: stop poll watcher when watched socket is closed locally commit 1cd9642cbb2c6d2acac80d686e1471d4daa20048 Author: Fedor Indutny Date: Sat Jun 2 21:34:21 2012 +0200 test: stdin/out/err should be set to /dev/null when ignored commit bdb8b3a1f2b0fd6782c5b98870e7ab4f65b3f42d Author: Bert Belder Date: Sat Jun 2 21:17:03 2012 +0200 windows: always set FDs 0-2 for spawned child processes commit 4a07b8b7bd32c22758fa30803bd55790fe79e01a Author: Bert Belder Date: Sat Jun 2 21:12:10 2012 +0200 test-poll: make spurious wakeup detection slightly less strict commit 619686e9e98318e0a45dde473a4f984216baa3d6 Author: Bert Belder Date: Sat Jun 2 21:05:06 2012 +0200 windows: fix fall-through bug in init_child_stdio() commit d21fc6c333c383fb2fbec1f2fc587d459c4ea47c Author: Bert Belder Date: Sat Jun 2 20:37:08 2012 +0200 windows: move uv_hrtime() to util.c * It has nothing to do with timer handles, so it doesn't belong in timer.c * uv_hrtime_init() was merged into uv__util_init() commit ec95a07d00d358290328dc3c682433d9ec37ceaa Author: Bert Belder Date: Sat Jun 2 20:35:14 2012 +0200 windows/util: move initialization code to uv__util_init commit cd1298c38807d9a2cd546612fed2fa58da708220 Author: Bert Belder Date: Sat Jun 2 20:20:51 2012 +0200 windows: retrieve function pointers before doing anything else commit 1d64a36caa04f47f9ee34c06e2602d3a5c0f7d31 Author: Bert Belder Date: Sat Jun 2 20:01:33 2012 +0200 windows: add support for cpu times to uv_cpu_info() * Also cleans up the code and makes it use unicode APIs consistently. * Credits go to Brian White for creating an earlier version of this patch. Closes #327 commit 4252240e5403cdadc6b0515e53788d04deb1c5bc Author: Brian White Date: Sat Jun 2 20:04:44 2012 +0200 windows: add uv__once_init() that ensures that libuv has been initialized commit 87f3530a1e4330317bd1e694afc596e155b412ae Author: Brian White Date: Sat Jun 2 20:02:05 2012 +0200 windows: retrieve NtQuerySystemInformation at startup commit 120d99780929118ca499fcab77e274ce35a4ca45 Author: Bert Belder Date: Sat Jun 2 17:39:31 2012 +0200 windows: fix NTSTATUS redefined when compiling with MinGW Closes #403 Closes #422 commit 961e0cf8da69c6268a7c49c67c5dca089e6989b5 Author: Bert Belder Date: Sat Jun 2 03:05:19 2012 +0200 windows/tty: never report error after forcibly aborting line-buffered read commit 38a6f9f0d969bb44634b7d81fd49cfe608989234 Author: Bert Belder Date: Fri Jun 1 18:53:11 2012 +0200 test: fix windows-ism in test-poll-close.c commit 07f01752393f9b40a739f9bdcc5327699f9398ed Author: Bert Belder Date: Fri Jun 1 18:33:02 2012 +0200 windows: fix hang when closing an active poll handle commit 9759c20e90654be3dc057899357cff940c216b52 Author: Bert Belder Date: Fri Jun 1 18:30:17 2012 +0200 test: verify that closing an active poll handle doesn't hang commit 87dbffbd8f4410a894df0b9b9a8d28aa42d49174 Author: Bert Belder Date: Fri Jun 1 17:49:29 2012 +0200 windows: fix undefined function warning in run-tests.c commit 3ec9c67f935adfd3515acaa1c5ec5222fbdc6f94 Author: Bert Belder Date: Fri Jun 1 17:47:20 2012 +0200 windows: improve spawn stdio support * Make using an existing stream for stdio actually work * Support up to 256 stdio channels * Fix some minor bugs commit dc7a62d114a3986c9474b3d1d55b986307c64b09 Author: Fedor Indutny Date: Thu May 31 22:56:23 2012 +0400 test: test for uv_spawn with stdio_count == 3 commit f5b5127db0f3677b7c8e71df5cbc197369615660 Author: Fedor Indutny Date: Thu May 31 17:50:28 2012 +0400 change spawn() api to allow using existing streams for stdio This commit also adds support for this api on Unix. commit 528123ad9ae8ae09da29174590dc7fb3592dfe9b Author: Bert Belder Date: Fri Jun 1 03:05:31 2012 +0200 windows: fix bugs in uv__fast_poll_cancel_poll_req commit 04a7e5c274aac955269d82e7c47fafbc2bd6560f Author: Bert Belder Date: Fri Jun 1 02:26:25 2012 +0200 test-spawn.c: remove unused variable commit 69a923bf9386c8731d343604281e6632424032e7 Author: Charlie McConnell Date: Thu May 31 17:19:27 2012 -0700 process: implement UV_PROCESS_DETACHED flag for uv_spawn commit aecddfe530bc3add35131f13d0b48a9c032d582b Author: Bert Belder Date: Thu May 31 17:32:26 2012 +0200 windows: style fix commit 0c727fd7747d1532352bb622e689f2efe576e532 Author: Bert Belder Date: Thu May 31 17:30:25 2012 +0200 windows: don't crash commit c9396dd57e9ed366d65208fed2237dd469e95535 Author: Ben Noordhuis Date: Thu May 31 00:47:04 2012 +0200 unix: implement timers in libuv * replace libev backed timers with a pure libuv implementation * gut ev_run() and make it take a timeout instead of flags Incidentally speeds up the loop_count_timed benchmark by about 100%. commit 3f37ba859f401349b75581a75a5c46040d29dbef Author: Ben Noordhuis Date: Thu May 31 02:38:13 2012 +0200 bench: add new idle loop count benchmark commit 71a66c17a1a7038cc358fb73193c063a524160a6 Author: Ben Noordhuis Date: Wed May 30 02:08:15 2012 +0200 unix: mark eio poll handles as internal commit 171ad8567da60bbc61d159f67e45da934db7228e Author: Ben Noordhuis Date: Wed May 30 01:51:28 2012 +0200 unix, windows: add uv_walk() Lets the libuv user iterate over the open handles. Mostly intended as a debugging tool or a post-hoc cleanup mechanism. commit 122cd946954fab4ef8102805175f7832095680ef Author: Ben Noordhuis Date: Wed May 30 01:34:11 2012 +0200 unix: remove unused flag UV__PENDING commit 9d26f49725be64e588012d995c66fe312ad92f70 Author: Ben Noordhuis Date: Wed May 30 01:14:43 2012 +0200 unix, windows: rename flags UV__ACTIVE, UV__REF Rename UV__ACTIVE and UV__REF to UV__HANDLE_ACTIVE and UV__HANDLE_REF to make it clear that they apply to handles, not requests or loops. commit 58a272e5563754eb51ef54d76f8ab3db1300c731 Author: Ben Noordhuis Date: Wed May 30 00:08:22 2012 +0200 unix: rework pending handle/req logic commit 12ee388cd9d8578ef4b403e3b8144611ecd7c513 Author: Ben Noordhuis Date: Tue May 29 17:34:48 2012 +0200 test: clean up test-loop-handles.c commit ec0c7b8958f30b84b2dd21d030b11007983b5888 Author: Ben Noordhuis Date: Tue May 29 17:34:16 2012 +0200 test: fix double close in test-loop-handles.c commit 75565907073055dd717fb6a6074518cafdd9355d Author: Bert Belder Date: Tue May 29 00:53:04 2012 +0200 win/process.c: stdio fd should default to ignore commit 18e622d43e053330c4d6f002fb4e9ddae5812574 Author: Ben Noordhuis Date: Mon May 28 22:03:41 2012 +0000 unix: fix indentation in sunos.c commit 81aff9363357b4174a8528bc259d3d4ca277c7e7 Author: Bert Belder Date: Mon May 28 22:22:11 2012 +0200 win/process.c: remove unused function duplicate_std_handle commit 4690204682664f42169e5875794d4b906ef6fdf4 Author: Ben Noordhuis Date: Mon May 28 21:53:21 2012 +0000 unix: fix getaddrinfo bad pointer deref commit c0081f0e6675131721dbb5138fd398792a8c2163 Author: Fedor Indutny Date: Wed May 9 20:15:05 2012 +0700 unix: allow specifying FDs to be inherited by a child process Previously the only option was to create a pipe or an ipc channel. This patch makes it possible to inherit a handle that is already open in the parent process. It also makes it possible to set more than just stdin, stdout and stderr. commit 5a34f19970086b248646e1907207144a72773a14 Author: Igor Zinkovsky Date: Tue May 15 11:26:16 2012 -0700 windows: allow specifying FDs to be inherited by a child process Previously the only option was to create a pipe or an ipc channel. This patch makes it possible to inherit a handle that is already open in the parent process. There is also room for setting more than just stdin, stdout and stderr, although this is not supported yet. commit e4f23aacece124a1a5e706390beda6c800f6efa0 Author: Bert Belder Date: Mon May 28 01:53:22 2012 +0200 Get rid of UV_LEAN_AND_MEAN commit 2ec09862e4f94230945f7700a0ae5de09577c11f Author: Ben Noordhuis Date: Mon May 28 00:24:37 2012 +0200 unix, windows: set active flag on unref'd handles A logic bug in uv__handle_start() and uv__handle_stop() stopped the active flag from getting set (or unset) on unref'd handles. commit 028fef84b8244501f644732b83a2faaef3600820 Author: Ben Noordhuis Date: Sat May 26 02:09:35 2012 +0200 unix: update timer if already active uv_timer_start() no longer returns an error when the timer is already active, now it just updates the timer. Consistent with the uv-win implementation. Fixes #425. commit ae9d4c2aabb01691bd7eecacbf65e5a82b611b64 Author: Ben Noordhuis Date: Sat May 26 01:57:49 2012 +0200 test: add 'is active?' checks to test-timer.c commit 34445d0741d06c43befe4b83e87ba4086e4cee9b Author: Ben Noordhuis Date: Sat May 26 01:42:40 2012 +0200 test: remove stale UNIX socket before running test Fixes spurious test and benchmark failures. commit 28766dcf559d4f4ecd4ee55198d4bf7c8fd6aaaa Author: Ben Noordhuis Date: Fri May 25 01:31:46 2012 +0200 test: remove test-eio-overflow.c Unreliable, it's timing / system load sensitive. commit ce28e13038226d609ad1c1e747e699fd738e5871 Author: Ben Noordhuis Date: Fri May 25 01:24:17 2012 +0200 unix: remove unused __attribute__((unused)) commit 604802ad47f4d0b2a015a62b08f0d1427be7fd87 Author: isaacs Date: Thu May 24 19:31:29 2012 +0000 Fix sunos build: undeclared variable 'handle' commit 793a52f5df9c587e36bc1e39ea9f4aa776c92e6e Author: Ben Noordhuis Date: Thu May 24 16:00:35 2012 +0200 unix: pack uv structs more Try to avoid alignment holes on x86_64. Shaves off 4-8 bytes from most structs. commit 752ac30ec820bc0ef4dfea698fd7119a8a4aa14c Author: Ben Noordhuis Date: Thu May 24 14:31:50 2012 +0200 unix: don't pass sockaddr to accept() Shaves a few nanoseconds off the accept() syscall. commit cff2221fbfca2c3f21cc46afa0c68a9e59810725 Author: Ben Noordhuis Date: Wed May 23 23:45:08 2012 +0200 unix: split up loop.c Move prepare/check/idle watcher code to loop-watcher.c so it can be reused for the linux backend. commit 890d4435580f037825070a60fcc34fdbc9f15cb1 Author: Ben Noordhuis Date: Wed May 23 23:19:38 2012 +0200 unix: shave about 100 bytes off uv_udp_send_t commit e71495c84a4323158a348f5bd43af542f307a1b1 Author: Ben Noordhuis Date: Wed May 23 22:48:56 2012 +0200 unix: turn field stream->blocking into a flag Saves 4 bytes. commit 5fd2c406f1a990f5f4c081b92d3108a0c999848e Author: Ben Noordhuis Date: Wed May 23 22:19:11 2012 +0200 unix: fix up asserts in core.c and stream.c commit b69f8efee12880e0460a7a564b4e5f66e3babf9f Author: Ben Noordhuis Date: Wed May 23 21:17:17 2012 +0200 test: remove stale socket in ipc_send_recv_pipe Fixes spurious test failures. commit 2609e4363217a7cb7d5efded542fd486461b4784 Author: Ben Noordhuis Date: Wed May 23 21:18:31 2012 +0200 unix: remove unnecessary functions in udp.c commit 2b09cc2246a339ffd36ced6b9c79916e08353389 Author: Ben Noordhuis Date: Wed May 23 21:08:40 2012 +0200 unix: fix up asserts in udp.c commit cd2a9b4d5925920534072482f96130c577be17c0 Author: Ben Noordhuis Date: Wed May 23 21:05:41 2012 +0200 bench: measure ticks per second of idle event loop commit 7c8313bd0f8580fe21e7b4ad0d17e9d57bdf247f Author: Ben Noordhuis Date: Wed May 23 20:30:59 2012 +0200 unix, windows: make uv_run_once() return a bool The return value of uv_run_once() now signals if it needs to be called again. Fixes #427. commit 3604b8ddd3e8fa314b6e868b78ba21891229fe4d Author: Ben Noordhuis Date: Wed May 23 13:59:56 2012 +0200 unix: don't unlink UNIX socket on EADDRINUSE It was a bad idea to start with... commit 2e3e658be1b89d23cad4c126d7e84e2ca1177586 Author: Ben Noordhuis Date: Wed May 23 12:52:42 2012 +0200 unix: fix uv_poll CPU usage spike Saúl Ibarra Corretgé reports that calling uv_poll_start() repeatedly results in CPU usage spikes. Fixed by stopping the poll I/O watcher before updating it. Fixes #424. commit b19a713cfcf30dc4c087f85a6900f84faafb746e Author: Ben Noordhuis Date: Wed May 23 12:51:15 2012 +0200 test: fix unused variable warning commit 5b9c45120a39a0cda53cd806e8b1815b896c5d03 Author: Ben Noordhuis Date: Wed May 23 03:51:29 2012 +0200 unix: fold uv__io_cb into ev_io struct Makes the uv__io code a little more obscure but has the advantage that sizeof(uv__io_t) == sizeof(ev_io), i.e. the sizes of embedding handles don't change. commit 3bc970705490f139f7b8a13549644f119f2078f4 Author: Ben Noordhuis Date: Wed May 23 03:39:25 2012 +0200 unix: replace ev_io with uv__io_t Replace ev_io usage with wrapper constructs. This is preliminary work for the transition to a libev-less linux backend. commit 7a64ec49ffa391f96bff4edfc24f5ca1176f1fc7 Author: Ben Noordhuis Date: Wed May 23 01:46:38 2012 +0200 test: clean up test-tcp-writealot.c Avoid unnecessary heap allocations, makes it easier to reason about correctness. commit 2df831723fad25d2d97b824b2e52c65082af2723 Author: Igor Zinkovsky Date: Tue May 22 16:32:17 2012 -0700 windows: set flags for uv_fs_symlink commit 253d718572aaf4ee144f10b20cac0a3768c40f45 Author: Igor Zinkovsky Date: Tue May 22 15:58:01 2012 -0700 report correct error commit 0ef7844b877bc060e0c16ff4855dee66b6e9433e Author: Bert Belder Date: Tue May 22 17:13:04 2012 +0200 Disable test-callback-order It's not correct. commit d1665792ca22d30b60319199662a0399be9f1352 Author: Bert Belder Date: Tue May 22 15:52:37 2012 +0200 Get rid of UV_HANDLE_TYPE_PRIVATE commit 58ba2d86e136d2d1180f4d3054384266afa04456 Author: Bert Belder Date: Tue May 22 15:51:37 2012 +0200 Move shared c-ares glue code from uv-common to cares.c commit c06edd4c8838af8891583aa907073f255bad8c8e Author: Bert Belder Date: Tue May 22 01:41:59 2012 +0200 windows, unix: share c-ares glue code commit 25316a3f921ace8f62a84974f976235fb0cd5976 Author: Bert Belder Date: Tue May 22 02:49:17 2012 +0200 Make the gethostbyname benchmark more precise commit a478847f747b1af3fc0acfd657e5b49c66ffb3e7 Author: Ben Noordhuis Date: Tue May 22 16:04:09 2012 +0200 test: add callback order test Ensure that idle callbacks run before other callbacks. commit 80b554129b613b4ca30a50e985bb49eb764ba152 Author: Ben Noordhuis Date: Tue May 22 14:25:35 2012 +0200 unix: reactive new idle watcher implementation The new idle watcher was temporarily disabled in 073a48d due to some semantic incompatibilities with the previous implementation. This commit resolves those issues and reactivates the new implementation. One outstanding bug is that idle watchers can run in a different order (relative to other handle types) than the old implementation, e.g. (timer, idle) instead of the expected (idle, timer). This will be fixed in an upcoming commit. commit 6190caba05694d5ec81a4c97528a3088966fe125 Author: Ben Noordhuis Date: Tue May 22 15:08:21 2012 +0200 unix: remove outdated comment commit ea8fa31fc0c9865c91a8872c15610d80d5ac93c4 Author: Igor Zinkovsky Date: Tue May 22 00:23:26 2012 -0700 fix fs_symlink_dir test commit ad279df7c08d01b8c683090e955bf628a8aa3bc1 Author: Bert Belder Date: Tue May 22 01:01:38 2012 +0200 Unix: remove superfluous variable from uv_poll_start commit 6fd9bfb7b062412ad9b57a5eea0f880aee3f450b Author: Ben Noordhuis Date: Mon May 21 17:32:38 2012 +0200 unix: fix event loop block, prepare/check invoke Don't block in epoll_wait() / kevent() / etc. syscall unless there are active handles. If there are only active requests, do a non-blocking poll. Likewise, don't run the prepare and check watchers unless there are active handles *or* requests. commit d27a62deff49ec61c6ec96298c4f1b9f524f8f61 Author: Frank Denis Date: Sun May 20 22:43:06 2012 -0700 unix: fix build on dragonfly bsd Unbreak compilation on Dragonfly BSD, that uses kqueue, too. commit e82d46452e3db141d3875286cf90be0de6d724e0 Author: Ben Noordhuis Date: Fri May 18 01:16:29 2012 +0200 unix: fix close-before-connect bug Closing the TCP socket before the SYN/ACK handshake completed hung the event loop, the connect req didn't get unregistered. commit e10a87adb9054750a38cd9cedf398fe513accc9c Author: Ben Noordhuis Date: Fri May 18 01:16:06 2012 +0200 unix: streamline shutdown req cleanup logic commit 744704898166eac6eb0a759e016fb27eca2de60f Author: Ben Noordhuis Date: Thu May 17 11:44:05 2012 +0200 test: enable tcp_connect_error_fault test commit 538a562cdba319aec83690e709a400c7cac2cd3b Author: Ben Noordhuis Date: Thu May 17 11:43:33 2012 +0200 test: add tcp connect timeout test commit 073a48d6bf8705ca4a8e93920acdbe5c52f7ea5b Author: Ben Noordhuis Date: Thu May 17 08:27:00 2012 +0200 unix: back out new idle watcher for now Its semantics don't quite match what node.js expects. This breaks the stdio_over_pipes and shutdown_close_pipe tests but that can't be helped. commit 60af28ababe8c2b6e76e04ee888d2ff77ab7216c Author: Igor Zinkovsky Date: Tue May 8 15:44:11 2012 -0700 windows: support junctions with uv_fs_synlink based on @piscisaureus implementation commit 9efa8b35713ae2a1c2ba2300e54492861f1af1e5 Author: Ben Noordhuis Date: Thu May 17 06:28:46 2012 +0200 unix, windows: rework reference counting scheme This commit changes how the event loop determines if it needs to stay alive. Previously, an internal counter was increased whenever a handle got created and decreased again when the handle was closed. While conceptually simple, it turned out hard to work with: you often want to keep the event loop alive only if the handle is actually doing something. Stopped or inactive handles were a frequent source of hanging event loops. That's why this commit changes the reference counting scheme to a model where a handle only references the event loop when it's active. 'Active' means different things for different handle types, e.g.: * timers: ticking * sockets: reading, writing or listening * processes: always active (for now, subject to change) * idle, check, prepare: only active when started This commit also changes how the uv_ref() and uv_unref() functions work: they now operate on the level of individual handles, not the whole event loop. The Windows implementation was done by Bert Belder. commit 07622e767d1d67f0eb3e07b0e00b63e8020d50fa Author: Frank Denis Date: Wed May 16 07:21:15 2012 -0700 unix: change #if FIONBIO to #ifdef FIONBIO Fixes compilation on Debian/ppc 6.0.4. commit ad024040fcb6101b5ca6efbc9265accdee7e2c2d Author: Ben Noordhuis Date: Sat May 5 18:37:49 2012 +0200 test: prevent accidental division by zero commit 985b961d4eab778857101b17b62f9e521d43a157 Author: Andrius Bentkus Date: Sat May 5 17:05:12 2012 +0200 Put POLL into the handle_map, so handle_size returns the size of it correctly. commit b5f9bc861fa97cf7a3ddd8f05422c034e744a539 Author: Ben Noordhuis Date: Sat May 5 00:51:32 2012 +0000 sunos: make fs.watch scale better Instead of using one port per watch, use one port for all the watches. This is a cherry-pick of commit 7326962 from v0.6 into master. Conflicts: include/uv-private/uv-unix.h src/unix/core.c src/unix/sunos.c commit 1d24c76df7dcf06fb2edcd4320cced7ad7a7b198 Author: Bert Belder Date: Sat May 5 00:05:36 2012 +0200 Windows: fix MinGW MinGW's headers are missing a definition for SIO_BASE_HANDLE commit 436589692148a87d1d0e55d2641288a4fe913b22 Author: Bert Belder Date: Fri May 4 14:31:48 2012 -0700 Windows: skip GetFileAttributes call when opening a file It wasn't working, and everything seemed to work fine nonetheless. Removing it just saves a syscall. commit b750dec517ae5da70d07a51e02586184f1259168 Author: Bert Belder Date: Fri May 4 13:54:02 2012 -0700 Windows: fix iocp emulation bugs for tcp handles Makes ipc_tcp_connection pass on Windows XP commit ef9a9f1f7834b6ea04ba398be49983600bc7d46b Author: Bert Belder Date: Fri May 4 13:02:55 2012 -0700 Tests: make test-tcp-write-error pass on XP commit 6037684ef8b3b1bf88fcf76e2cf5bf4cdc7a5be9 Author: Ben Noordhuis Date: Fri May 4 15:01:22 2012 +0200 unix: zero out new loop struct Fixes spurious segfaults in pyuv. commit ce129ac6e29d5b2c81797dac6e00292800a0088e Author: Ben Noordhuis Date: Thu May 3 19:33:54 2012 +0200 windows: remove unused variables commit 395e256889836e5b36c954e2bd1629fad7931fe2 Author: Ben Noordhuis Date: Thu May 3 19:39:37 2012 +0200 unix: don't use setlocale() setlocale() is not inherently thread-safe. We'll have to live with the fact that test/test-dlerror.c fails on systems with localized error messages. commit 5d19aa84f0ee2895d5d427cd8a3918d362b93ffb Author: Ben Noordhuis Date: Sun Apr 29 23:46:14 2012 +0200 unix, win: rework uv_dlopen() API commit 93d16e6a841972b343af051e3a78e2d164bcfa72 Author: Ben Noordhuis Date: Sun Apr 29 21:35:31 2012 +0200 unix: change uv_dl*() error code Return UV_ENOENT instead of UV_EINVAL. UV_EINVAL was arbitrarily chosen and turns out to be inconsistent with the Windows implementation. Fixes #395. commit acd0afb29677015f67609cb298b6807697f5a6e4 Merge: e387554 b9504f7 Author: Bert Belder Date: Thu May 3 16:14:02 2012 +0200 Merge branch 'poll' Closes: #316, #401 Ref: #265, #349 commit b9504f7987ce6e4979d1c3edc0aceb8f9d592409 Author: Bert Belder Date: Thu May 3 16:02:21 2012 +0200 Rename uv_platform_socket_t to uv_os_sock_t commit 444ab19be8aee6f167e84a500e4d488d52d82277 Author: Bert Belder Date: Wed Apr 25 00:23:16 2012 +0200 Benchmarks: add size of uv_poll_t to benchmark-sizes commit beaf7507002a9f94cce9b30cbbdb108a64d8a5cd Author: Bert Belder Date: Wed Apr 25 00:26:21 2012 +0200 Test: add tests for uv_poll commit d60d94e0c36cc45ab32773e3a7c47173a784e1f9 Author: Bert Belder Date: Thu May 3 01:43:56 2012 +0200 Unix: implement uv_poll commit d7a71761c4ee6b7d02d98f7e3a6efdffbadcb32a Author: Bert Belder Date: Wed Apr 25 00:25:01 2012 +0200 Windows: implement uv_poll commit e1154d70ceb0e6e30b6f3cd4fa879bef17a162e2 Author: Bert Belder Date: Wed Apr 25 00:15:59 2012 +0200 Api for polling external sockets commit e38755485e91443c07fae9b9b96b112d8e91d8f6 Author: Bert Belder Date: Wed May 2 19:15:52 2012 +0200 Unix: namespace stream handle flags commit 1ebe14e4942c7fb69fa5a96b0bfb58a797881828 Author: Ben Noordhuis Date: Wed May 2 17:41:20 2012 +0200 linux: fix build error with old kernel headers O_CLOEXEC was introduced in linux 2.6.23, don't assume it's available. Fixes #400. commit 19aca7a7c04a66edf22e19f1aa1405aabb9f0337 Author: Bert Belder Date: Wed Apr 25 00:22:51 2012 +0200 Windows: add uv_msafd_poll, to support overlapped socket polling commit 9f0dc2601ed5961e739a754b9ad7d194703cc4a1 Author: Bert Belder Date: Wed Apr 25 00:19:01 2012 +0200 Windows: fetch pointer for CancelIoEx on startup commit 7d45cca12a68a6fdf9d91979af928258abeafab0 Author: Bert Belder Date: Wed Apr 25 00:39:14 2012 +0200 Windows: we're out of handle flags - arrange them more efficiently commit 6367da25b38274c31b42097056b2995c2696caef Merge: c7edea9 936795a Author: Bert Belder Date: Tue May 1 16:54:27 2012 +0200 Merge branch 'v0.6' commit 936795a2c8aac2d05bfbf3778c54396bd52352ee Author: Ben Noordhuis Date: Mon Apr 16 16:35:50 2012 +0200 windows: map ERROR_WRITE_PROTECT to UV_EROFS commit edb40b16ce0386566c7c433bbf7224aa4a1c19e3 Author: Maciej Małecki Date: Sat Apr 14 17:40:01 2012 +0200 unix: map `EROFS` to `UV_EROFS` Conflicts: src/unix/error.c commit 0efa3cf4d34e33a48508205a8361fc9e957bb379 Author: Fedor Indutny Date: Tue May 1 21:30:32 2012 +0700 err: handle EIO errors on win/unix commit c7edea997ec0ac3533014cbb5f76fea958b6c3b4 Merge: d13b1e0 32f6f6e Author: Bert Belder Date: Tue May 1 16:21:11 2012 +0200 Merge branch 'v0.6' commit 32f6f6e2c761fe2a9d897eab92493f11f48df8c3 Author: Bert Belder Date: Tue May 1 16:19:09 2012 +0200 Windows: map ERROR_NOT_SAME_DEVICE to UV_EXDEV commit d13b1e0803b7903373aaba8aa76406ee94f43a7d Author: Keno Fischer Date: Sun Apr 29 02:29:55 2012 +0200 Windows: fix uv_fs_ftruncate to compile with Mingw32 Close: #382, #397 Ref: #381 commit b386c44e5ea108775fc907ca3a66616455e16ea5 Author: Bert Belder Date: Sun Apr 29 02:18:17 2012 +0200 Windows: always enable multicore compile commit 0c32087973c9e5144daf04d1e74c1e3879925371 Author: Bert Belder Date: Sun Apr 29 02:08:25 2012 +0200 Windows: disable minimal rebuild (/Gm) If enabled multicore compile doesn't work. commit e2cae340a6c3e02a65a896444c47926333f89baf Merge: 6234416 e2b6f42 Author: Bert Belder Date: Sun Apr 29 00:00:32 2012 +0200 Merge branch 'v0.6' Conflicts: include/uv-private/uv-unix.h include/uv-private/uv-win.h include/uv.h src/unix/error.c src/unix/linux.c src/uv-common.c src/win/fs.c test/test-fs.c test/test-spawn.c commit 623441685d94fa366edee5fec46f291bc146237e Author: Erik Dubbelboer Date: Sat Apr 28 18:16:11 2012 +0200 test-spawn failed to build on linux - added missing header file - converted c++ style comment to c style comment commit e2b6f423cbb18607bb38a59ccf6e7dee61c10764 Author: Erik Dubbelboer Date: Sat Apr 28 18:16:11 2012 +0200 test-spawn failed to build on linux - added missing header file - converted c++ style comment to c style comment commit fac3b68fff401d86ef292f3f67c5e330d3c94adb Author: Ben Noordhuis Date: Wed Apr 25 01:26:41 2012 +0200 linux: add IN_MOVE_SELF to inotify event mask Partially fixes joyent/node#3172, behavior is now consistent with inotifywait. commit bfd6d465c760b0d0797ebe7cbee3a5d40a4b1d71 Author: Bert Belder Date: Fri Apr 27 21:05:15 2012 +0200 Test for the uv_spawn's setuid and setgid options commit 99a995a6b8d9ae0ab17938ae63714996ddccbb30 Author: Bert Belder Date: Fri Apr 27 17:41:56 2012 +0200 uv_spawn: support setting the child process' user and group id commit c862acc609f55366209f452864f69c7e04adff10 Author: Bert Belder Date: Fri Apr 27 21:24:27 2012 +0200 Windows: add mappings for UV_ENOENT commit b26fdde181436c3806a314180f155d2962771125 Author: isaacs Date: Fri Apr 20 08:16:55 2012 -0700 Map ENOMEM to UV_ENOMEM commit d41cc9118df383ad8fb6007f4b175677c09e42f0 Author: Bert Belder Date: Fri Apr 27 21:58:44 2012 +0200 Windows: uv_spawn2 reports the wrong error when setuid/setgid is specified commit aea5db5da1483d1ab0a1d3e4f622df312202d027 Author: Bert Belder Date: Fri Apr 27 21:24:27 2012 +0200 Windows: add mappings for UV_ENOENT commit 66647bf934760b2bb5e498169e462d9cc9a62fd6 Author: Bert Belder Date: Fri Apr 27 21:05:15 2012 +0200 Test for setuid/setgid commit c42ba103b7745fdce3ec7dfc6a772f935b3f8f7e Author: Bert Belder Date: Fri Apr 27 17:41:56 2012 +0200 Temporary API to support spawn with uid and gid options commit 109dcb28b2398e098e201d402ecdaca39fd1f468 Author: Aaron Bieber Date: Tue Apr 24 19:09:12 2012 -0600 build: make "make test" work on OpenBSD commit b6e3dcc799a6750a78172ee060ab0af2384a4a3a Author: Luis Lavena Date: Wed Apr 25 04:06:06 2012 +0200 Windows: actually detect mingw-w64 and not 64 bits mode __MINGW64__ is only defined when using mingw-w64 in 64bits mode, not when using the 32bits version of the compiler. Instead, to detect usage of mingw-w64 instead of mingw version of GCC we should look at __MINGW64_VERSION_MAJOR and __MINGW64_VERSION_MINOR. If one of these is defined means we are running on mingw-w64 compiler and headers and not mingw.org build. Read more here: http://bit.ly/detect-mingw-w64-vs-mingw Closes #384 commit 06ae804e03c69c246edfa5edef5b65d915e55586 Author: Ben Noordhuis Date: Wed Apr 25 01:26:41 2012 +0200 linux: add IN_MOVE_SELF to inotify event mask Partially fixes joyent/node#3172, behavior is now consistent with inotifywait. commit 42a86693a7450133d7fb22eaa9f9ad6856ae0872 Author: Bert Belder Date: Wed Apr 25 00:17:43 2012 +0200 Windows: set loop counters to zero in uv_loop_init commit 1b6329dd3ed606f5204a234a3542a0bb18e4745c Author: Bert Belder Date: Wed Apr 25 00:18:12 2012 +0200 Style fixes commit 5342bac4c2c98d70a21abfb07adbadb251787143 Author: Bert Belder Date: Fri Mar 30 18:42:36 2012 +0200 uv.h: make the ssize_t fallback more portable commit 84d2f82a686497dfe1bf21f222e8f8b640771a8b Author: Ben Noordhuis Date: Mon Apr 23 11:53:53 2012 -0700 windows: rename local var errno to errorno Fixes compiler warning: ‘_errno’ redeclared without dllimport attribute: previous dllimport ignored. commit e6d4bca2ecb417b9654f637b59f35669ebf85fe2 Author: Igor Zinkovsky Date: Mon Apr 23 10:52:53 2012 -0700 remove left-over cast fixes #3160 commit 1f001fe917dc4955382a3c2b8ff9bad3530ae970 Author: Ben Noordhuis Date: Mon Apr 23 17:55:36 2012 +0200 unix: remove kqueue cb == NULL check The other implementations don't check for it and it's making the counters_init test fail. commit 21bee8c36f0f9086efd457ffcc22b17c5abab2c8 Author: Ben Noordhuis Date: Sat Apr 21 06:06:06 2012 +0200 unix: call pipe handle connection cb on accept() error commit cf6dc082caf61c46689341e9c515f7ae81ffbce2 Author: Ben Noordhuis Date: Sat Apr 21 05:57:49 2012 +0200 unix: handle EWOULDBLOCK in uv__read() commit 01cc491853ab0084b4f4dacf5ab0ca0580428ad4 Author: Ben Noordhuis Date: Sat Apr 21 05:56:43 2012 +0200 unix: handle EWOULDBLOCK in uv__write() commit df22d5935eb0fd44e2c6e3773308fcebb0ab646c Author: Ben Noordhuis Date: Sat Apr 21 05:52:38 2012 +0200 unix: handle EWOULDBLOCK in uv__server_io() commit 73cc3677fcdcef507154cc5860e3d0db1faa0c17 Author: Ben Noordhuis Date: Sat Apr 21 05:53:14 2012 +0200 unix: map EWOULDBLOCK to UV_EAGAIN commit 1fa1c5106a39532180d6c0326bea622654bd6698 Author: Ben Noordhuis Date: Sat Apr 21 06:06:06 2012 +0200 unix: call pipe handle connection cb on accept() error commit a55a33625ea60f6c840a739cfc3b568bb40674ee Author: Ben Noordhuis Date: Sat Apr 21 05:57:49 2012 +0200 unix: handle EWOULDBLOCK in uv__read() commit 4fd62648830a70333ac8d467a867ad2cb0d66d6c Author: Ben Noordhuis Date: Sat Apr 21 05:56:43 2012 +0200 unix: handle EWOULDBLOCK in uv__write() commit a8b52351329177fc694c041822ca012cfa8683a6 Author: Ben Noordhuis Date: Sat Apr 21 05:52:38 2012 +0200 unix: handle EWOULDBLOCK in uv__server_io() commit a29892d9d4f835f6955371f53c6ec78f0b1ca6d7 Author: Ben Noordhuis Date: Sat Apr 21 05:53:14 2012 +0200 unix: map EWOULDBLOCK to UV_EAGAIN commit f9fcaf5ccf60486e82745ccf8321c98c966caacd Author: isaacs Date: Fri Apr 20 08:16:55 2012 -0700 Map ENOMEM to UV_ENOMEM commit feafcdbf5f2f4da7d6f4eb695fd3763a78a6d5b9 Author: Ben Noordhuis Date: Wed Apr 18 23:06:01 2012 +0200 include: remove stray backslash commit ab3b307df3354821dde61f19965243decf01ac40 Author: Ben Noordhuis Date: Wed Apr 18 22:29:58 2012 +0200 unix: clean up uv__req_init() commit 595312935326883da433d9bdaf9e3bcf2b58d27b Author: Ben Noordhuis Date: Wed Apr 18 13:17:07 2012 -0700 build: print error message when gyp is not installed commit d5acfd0c0545acbef5ced2fbcbc6a91c8fc7c025 Author: Igor Zinkovsky Date: Sat Apr 14 12:29:16 2012 -0700 64bit offsets for fs operations and cleanup uv_fs_* for uv-win commit 132fe600c7a2189c6d278bc9b9d77d340f450169 Author: Ben Noordhuis Date: Wed Apr 18 03:13:08 2012 +0200 const-ify stream argument to uv_is_readable() and uv_is_writable() commit edb39b24990b50542f9c46a56605346a0a68d31e Author: Ben Noordhuis Date: Wed Apr 18 03:11:25 2012 +0200 const-ify handle argument to uv_is_closing() commit fb6c9eef2a9e9f22153bad9de9bd8ba1abe37efc Author: Ben Noordhuis Date: Sat Apr 7 17:09:01 2012 +0200 const-ify handle argument to uv_is_active() commit 6c2a2aa2509a9ea48a05354e4b445b8d7e605723 Author: Ben Noordhuis Date: Wed Apr 18 02:23:14 2012 +0200 test: don't assume unref'd timer cb runs commit 57ee146985989a5cfdb31c9dbced3923d09e35a7 Author: Ben Noordhuis Date: Fri Apr 13 14:22:39 2012 +0200 test: unlink UNIX socket before starting pipe echo server commit 976423c643e28cddeee6b5ab9ee01802a95b878d Author: Ben Noordhuis Date: Fri Apr 13 14:09:06 2012 +0200 test: remove unused variable commit f471f063221a063b0b09071675f48cccf6db365f Author: Ben Noordhuis Date: Thu Apr 12 17:28:57 2012 +0200 test: clean up test-stdio-over-pipes commit 32948ab95234820a9ad7ba47ad91682f63bc4ab4 Author: Ben Noordhuis Date: Fri Apr 6 15:59:16 2012 +0200 test: make variables static in test-gethostbyname.c commit 92ec798984d23cc7f9db249f574a16ed3e7d5bb7 Author: Ben Noordhuis Date: Wed Mar 21 07:25:17 2012 -0700 test: stop counter_init from failing when watch_dir exists commit 13b8ebd7e676dd49e42b7888e0855f20739ceb4e Author: Bert Belder Date: Wed Apr 18 01:15:05 2012 +0200 windows: a closing async watcher should not call it's callback commit 20879c1cf29a6312761d9671357eb12cb8958a80 Author: Bert Belder Date: Wed Apr 18 01:14:30 2012 +0200 test: fix a race condition in 'async' test commit 5345ee36f2fd49ae01a1ee6fe396ffb8291b6641 Author: Ben Noordhuis Date: Tue Apr 17 15:58:19 2012 +0200 test: fix race conditions in test-async commit d5e7786885b1ae5967ea183af2e725a954400a2c Author: Ben Noordhuis Date: Mon Apr 16 16:35:50 2012 +0200 windows: map ERROR_WRITE_PROTECT to UV_EROFS commit 58733d18a6bd9930a9f365ca433256cc57ba184c Author: Maciej Małecki Date: Sat Apr 14 17:40:01 2012 +0200 unix: map `EROFS` to `UV_EROFS` commit 76364c26de9a089ed2d19aadd99aaefce3c4186e Author: Bert Belder Date: Fri Apr 13 01:59:24 2012 +0200 Fix spawn_and_kill_with_std test commit 62a63a30e4a98b27eb2d9ae5bb0a184fe7e15641 Author: Bert Belder Date: Fri Apr 13 00:46:52 2012 +0200 Windows: make uv_dlopen() look in the DLL path to resolve recursive dependencies commit 9984d157ffcd8ab71fee6a6b6888c08d0f277f83 Author: Bert Belder Date: Thu Apr 12 17:36:42 2012 +0200 Windows: make uv_uptime() more robust commit f3e3e5b504d67bc408c38af04e2f1679044fa7ce Author: Bert Belder Date: Thu Apr 12 04:06:07 2012 +0200 Windows: validate UDP socket options Makes test-udp-options pass on Windows. commit a41016e9cd0bac0b744d46127471546fad378b97 Author: Ben Noordhuis Date: Thu Apr 12 03:45:51 2012 +0200 unix: run pending shutdown cb when stream is closed commit 4f0ff3c504e70b3aa1848b1a2cfbab9911bc53e4 Author: Bert Belder Date: Thu Apr 12 03:33:53 2012 +0200 Disable ipc_send_recv_pipe test on Windows It's not supported yet commit 6ec330a6c3e634485bd068955b752f2059bd1bf5 Author: Bert Belder Date: Thu Apr 12 03:15:51 2012 +0200 Add UV_EIO error code commit fa215848787ee98de09cd77aef41bffcd2f8d703 Author: Bert Belder Date: Thu Apr 12 03:14:34 2012 +0200 Whitespace commit 4741a112ad7116486977361691738d6bb3f0c729 Author: Ben Noordhuis Date: Thu Apr 12 02:13:43 2012 +0200 test: disable fs_event_close_in_callback on kqueue-based systems commit 2e5e1165ce7491a0de9bea512f3ca25be9461e0a Author: Bert Belder Date: Wed Apr 11 22:54:02 2012 +0200 Tests: don't use %zu placeholder in printf statements It's not supported by msvcrt. commit 42d3533487f181e59391e844dd03f113acfcfbea Author: Ben Noordhuis Date: Wed Apr 11 16:24:20 2012 +0200 unix: fix udp_options test on OS X and Solaris setsockopt(IP_TTL) will happily let you set a TTL > 255 on OS X, cap it. -1 or 0 is a valid TTL on Linux but not portable, deny it. commit 3c415975d90c96083d9bb97aa937f24d2644b50a Author: Ben Noordhuis Date: Mon Apr 9 23:59:59 2012 +0200 unix: don't conditionally compile kqueue fs watcher Always compile in the kqueue-based fs event watcher and handle it at run-time if the kernel doesn't actually support it. Works around build issues when -mmacosx-version-min is not set properly. Fixes joyent/node#3075. commit d68b3d960b6d95bfc16027cecca2f3fa48bcc36f Author: Ben Noordhuis Date: Fri Apr 6 01:47:16 2012 +0200 unix: add uv_fs_read64, uv_fs_write64 and uv_fs_ftruncate64 commit 8e6f332fed29008e14b78c7bbdf9285968e6b741 Author: Ben Noordhuis Date: Fri Apr 6 01:24:20 2012 +0200 unix: fix compiler warning, #include commit e3468e9d42aab4ae0cd53f3f5e409d551d85a683 Author: saghul Date: Thu Apr 5 08:21:09 2012 +0200 unix: add missing function declaration commit ea501263588c0efbaa77b24feda20075a943271a Author: Igor Zinkovsky Date: Thu Apr 5 16:00:38 2012 -0700 add 64bit offset fs functions commit 637d976c195d690ef96344fd7415cfc29546b868 Author: Ben Noordhuis Date: Fri Apr 6 00:55:04 2012 +0200 Revert "Fix memory leak in uv_exepath() on OSX." This reverts commit f6c8e78db973a0f57424dba74c97fdd4d2f910f8. realpath() on OS X 10.5 crashes if resolved_path == NULL. commit f6df47b474b428d3535c935739c957cc8e7c00f8 Merge: f09f7bc 3506cd1 Author: Bert Belder Date: Thu Apr 5 17:26:23 2012 +0200 Merge branch 'v0.6' commit 3506cd1dc5e941acb216b2118cfc784b78fcc4f1 Author: Bert Belder Date: Thu Apr 5 17:17:09 2012 +0200 Windows: don't report ENOTSOCK when attempting to bind an udp handle twice commit cda7a280395108e0c84175822718e7436c8cb4f1 Author: Bert Belder Date: Thu Apr 5 16:47:49 2012 +0200 Windows: backport pipe-connect-to-file fixes from master Conflicts: src/win/pipe.c commit e53ab6675ba12d97ad6d93c9913a473ba5172617 Author: Bert Belder Date: Fri Mar 9 17:04:03 2012 +0100 Windows: report UV_ENOTSOCK when we opened a file instead of a pipe Makes the pipe_connect_to_file test pass on Windows. commit 8cbbfbe4c6489868470a7e410f80d4729f4091bf Author: Igor Zinkovsky Date: Thu Mar 1 14:32:59 2012 -0800 test: make pipe_connect_to_file succeed with ECONNREFUSED commit 6bbccf1fe0e000fd73e945368466cd27291483e3 Author: Igor Zinkovsky Date: Thu Mar 1 12:11:12 2012 -0800 windows: return UV_ENOTSOCK when doing uv_pipe_connect to a file commit f09f7bc6a8b64585cd74d1fca712c6d0cab2f737 Author: Bulat Shakirzyanov Date: Thu Apr 5 01:39:20 2012 +0200 Add functions to look up req and handle sizes Useful for FFI bindings. Closes #370. commit 5f38ba1a8992c5aaebe89f5a11e3779dc2649fab Author: Bert Belder Date: Thu Apr 5 01:28:24 2012 +0200 Move private req and handle fields to platform headers And fix other problems introduced with UV_HANDLE_TYPE_MAP and UV_REQ_TYPE_MAP. commit f4e753718489284cebdb1b61026002256a92520e Author: Ben Noordhuis Date: Thu Apr 5 15:13:14 2012 +0200 unix: move inotify init logic to loop.c commit 68bed698fc90ca8798aac804667fd6069297c56a Author: Ben Noordhuis Date: Wed Apr 4 05:52:01 2012 -0700 unix: move loop init logic out of core.c commit 5a8446c3099fd10353de206825a6a42ac1ce8d63 Author: Ben Noordhuis Date: Wed Apr 4 05:30:13 2012 -0700 unix: move handle specific close logic out of core.c commit ed395e0619ab50d86c960e839525a0a5e8259b66 Author: Ben Noordhuis Date: Wed Apr 4 05:03:15 2012 -0700 unix: replace handle->next_watcher Remove the next_watcher and replace it with a linked list. Said list is named endgame_handles (because the uv-win calls it that) and contains all the handles that are in the UV_CLOSING state. The goal of this commit is two-fold: a) remove a dependency on libev, and b) share more code with uv-win in the future A nice side effect is that it shaves a few bytes off a uv_handle_t. commit bf9a2b346306583d1eff9b14b3a2b85f9768cb83 Author: Ben Noordhuis Date: Wed Apr 4 07:26:17 2012 +0200 x-macro-ify uv_handle_type and uv_req_type commit 5fbe0aab3303bd800f878121c8ef4aba19b0115b Author: Ben Noordhuis Date: Wed Apr 4 05:41:09 2012 +0200 unix: move active checks out of core.c Move active checks out of core.c and into their respective compilation units: check, idle, prepare, timer. commit 5a59e4924aa727a0cf07ed58a57075d42825b32a Author: Ben Noordhuis Date: Wed Apr 4 05:25:07 2012 +0200 unix: move idle code from core.c to idle.c commit dd3126575193dae16e5f9cc7e4c2b9155edc68dc Author: Ben Noordhuis Date: Wed Apr 4 05:23:18 2012 +0200 unix: move check code from core.c to check.c commit f1a19e6d3491938391e63daec3189b4d82bd736c Author: Ben Noordhuis Date: Wed Apr 4 05:20:27 2012 +0200 unix: move prepare code from core.c to prepare.c commit f7359a335cc4abdb202bb67d490479a0d5b52632 Author: Ben Noordhuis Date: Wed Apr 4 05:17:25 2012 +0200 unix: move async code from core.c to async.c commit fd987a26fe25030cbac53f689532743e37c75dd0 Author: Ben Noordhuis Date: Wed Apr 4 05:14:15 2012 +0200 unix: move timer code from core.c to timer.c commit c733cb807d3152394ab40c10926fde9f016e5dd5 Author: Ben Noordhuis Date: Wed Apr 4 05:12:02 2012 +0200 build: sort source files commit effa3b65b14e9b07e293f3490f2f66a27a032d7e Author: Ben Noordhuis Date: Tue Apr 3 17:37:52 2012 +0200 Rename __unused to UV__UNUSED. __unused is - contrary to its name - used in glibc. The ANSI/ISO standards reserve all identifiers starting with two underscores so it's generally a good idea not to use those. commit 8895c9e672c5bc5f9f0bb6d71ede51a5288d0d22 Author: Ben Noordhuis Date: Tue Apr 3 03:13:09 2012 +0200 unix: use uv_timer_t for c-ares' timeout timer commit 42095c85a03af4912a7c76df006088697f1350f1 Author: Ben Noordhuis Date: Tue Apr 3 02:40:07 2012 +0200 Remove UV_ARES_TASK_PRIVATE_FIELDS. It's only used internally, it doesn't have to be part of a public header file. commit 396d1383fea75afe760f98bb1a6ff563048ae112 Merge: 9d3c000 9c8f6dd Author: Ben Noordhuis Date: Mon Apr 2 23:50:27 2012 +0200 Merge branch 'v0.6' commit 9c8f6dd4f9367c569b63a41b2f652a9baaca177b Author: Ben Noordhuis Date: Mon Apr 2 23:44:36 2012 +0200 build: define _DARWIN_USE_64_BIT_INODE=1 on OS X Fixes a segmentation fault on some OS X systems due to sizeof(struct stat) mismatches. commit 9d3c00046f1e8d3800bcb161dd8e929399776d55 Author: Brian White Date: Fri Feb 24 12:06:44 2012 -0500 test: ensure valid uptime value commit 442aa1f4696d24a605790b8ad4317696758ee8de Author: Brian White Date: Fri Feb 24 11:56:15 2012 -0500 win: use performance counter instead of GetTickCount for uptime commit b309f2e2e6b227c515b7041b3dbd05fb7c1125f8 Author: Vladimir Dronnikov Date: Sun Apr 1 21:05:06 2012 +0200 Add uv_is_closing() Closes #367. commit 685b36ba661933a675d809028714df577c808439 Author: Ben Noordhuis Date: Sat Mar 31 00:11:34 2012 +0000 linux: tidy up syscall code commit 4632163190cef559b84e330a862b4893c342a447 Author: Ben Noordhuis Date: Fri Mar 23 22:43:57 2012 +0000 sunos: don't use fopen() FILE uses an unsigned char to store the file descriptor so it cannot handle situations where there are more than 256 open file descriptors. commit 1ab8f5a3c5697013c8cf00bfefa896e005f38aff Author: Ben Noordhuis Date: Fri Mar 30 22:39:33 2012 +0200 Conditionally define __unused. Fixes compiler warning '"__unused" redefined' on OS X. Reported by Saúl Ibarra Corretgé. commit 436001877426d25c14c447f45949ad6aace38ac7 Author: Igor Zinkovsky Date: Fri Mar 30 11:49:31 2012 -0700 add missing uv_tcp_close declaration commit ab8c3b85c1c4f1395d6371cb6ec1d4be5a676a44 Author: Igor Zinkovsky Date: Thu Mar 29 18:38:33 2012 -0700 export uv_is_readable & uv_is_writable commit c3daa44c25d5b7a044eb276e5b33cd413ac3e1ab Author: Igor Zinkovsky Date: Thu Mar 29 18:14:24 2012 -0700 windows: explicitly disallow sending non-listening or non-connected TCP sockets over IPC commit 70925c3bb993bf7ecde4c876278dec22b4745650 Author: Igor Zinkovsky Date: Thu Mar 8 12:02:50 2012 -0800 windows: Enable passing of TCP connections over IPC commit 31ff9863a16950b0fdae0d94c0e84e5f718fafad Author: Bulat Shakirzyanov Date: Tue Mar 27 18:07:16 2012 -0700 unix: fix TARGET_OS_IPHONE conditional commit 6e0ca3aa8f92e398f4bbbe872d56af7ec3af6212 Merge: 40e6373 1795427 Author: Bert Belder Date: Tue Mar 27 23:46:23 2012 +0200 Merge branch 'v0.6' Conflicts: src/unix/linux/inotify.c commit 1795427ab0d885cae3aa9bbcecb423c4bf863749 Author: Bert Belder Date: Tue Mar 27 22:53:30 2012 +0200 Windows: never call fs event callbacks after closing the watcher commit aff078390ff45077f12ea31d00516bf9a8e2f08e Author: Bert Belder Date: Tue Mar 27 22:52:53 2012 +0200 Test: verify that uv_close from an fs event callback works properly commit 732cf91d6d0d6a711183985c1796a31565708bb2 Author: Bert Belder Date: Tue Mar 27 22:56:34 2012 +0200 Test: verify that no callbacks are made after closing an fs event watcher commit 89303f365e85bff909a821e2a552e7e2e35c255a Author: Bert Belder Date: Tue Mar 27 22:50:52 2012 +0200 Fs event tests: don't fail if a previously failed test left stray files commit 7e8fe3ece7392a36a283ba6ff4e57bc8cb617d34 Author: Bert Belder Date: Tue Mar 27 22:56:51 2012 +0200 test-fs-event.c: style commit 40e6373263fd6853c4986393eaab041715016686 Author: Aaron Bieber Date: Tue Mar 27 08:59:43 2012 -0600 unix: fix compiler warning Fix warning "for loop initial declaration used outside C99 mode" on openbsd. commit 2b3ba91eb91143b20741b62a7164e529032bb7ae Author: Vladimir Dronnikov Date: Tue Mar 27 18:13:02 2012 +0400 build: make `make clean` really clean commit e729a82e7de13f048fdb515d638daadae53ad291 Author: saghul Date: Sun Mar 25 22:17:26 2012 +0200 build: don't link against the Carbon framework Unused. The Makefile doesn't link against it either. commit 8409a6765bbda8d68cb3f2e48a1ce0a3d4814096 Author: Ben Noordhuis Date: Wed Mar 21 07:07:18 2012 -0700 unix: ignore ECONNABORTED errors from accept() ECONNABORTED means that the connection was torn down by the peer before the TCP handshake completed. Ignore it, there's nothing we can do and it simplifies error handling for libuv users. commit c9c9d805dae321a7bdf0077547c2da2dbe70f2a2 Author: Ben Noordhuis Date: Wed Mar 21 07:07:18 2012 -0700 unix: ignore ECONNABORTED errors from accept() ECONNABORTED means that the connection was torn down by the peer before the TCP handshake completed. Ignore it, there's nothing we can do and it simplifies error handling for libuv users. commit 8ce8bfaa4083e8a975c1c9703726ff3986a8e8be Author: Ben Noordhuis Date: Wed Mar 21 06:26:10 2012 -0700 test: fix format string warnings commit 8e59042310e7a2b25c298b1f79d161fd5772b117 Author: Charlie McConnell Date: Tue Mar 20 16:06:52 2012 -0700 unix: map ENETUNREACH to UV_ENETUNREACH UV_ENETUNREACH already exists, but was not mapped properly on unix. commit 4ff0898c5f517aae04e42a8ce6d004f67e51e90f Author: Ben Noordhuis Date: Mon Mar 19 20:58:26 2012 +0100 unix: replace uv__close() with close() uv__close() was deprecated a while ago. It's been an alias for close() ever since. Remove it. commit ef47a627ad8c6ef92461178881246a447633f7d6 Author: Ben Noordhuis Date: Mon Mar 19 20:51:38 2012 +0100 unix: move libeio specific fields to uv-unix.h commit 49d4e1884ba5ea135f68c8b17fdf2c5d5bf0f91e Author: Ben Noordhuis Date: Mon Mar 19 07:40:50 2012 -0700 linux: use CLOCK_BOOTTIME if available Use CLOCK_BOOTTIME to calculate the system uptime. Fall back to CLOCK_MONOTONIC if CLOCK_BOOTTIME is not available (all pre-2.6.39 kernels). The problem with CLOCK_MONOTONIC is that it doesn't increase when the system is suspended, making the uptime differ from what the uptime(1) tool reports. commit 379ca428ef5dbf2a29897ed4d34506dad0b96757 Author: Ben Noordhuis Date: Fri Mar 16 02:42:20 2012 +0100 test: fix compiler warnings * remove unused variables and functions * replace %llu with %zu when printing size_t variables commit 4ae316bcc93d137d2ece2bcf6a8a85fca983a41b Author: Bert Belder Date: Fri Mar 16 02:38:37 2012 +0100 Windows: fix compiler warnings commit 681aa831fa904f5738b8e87f8e9340f2b5bb5635 Author: Ben Noordhuis Date: Fri Mar 16 02:34:55 2012 +0100 Mark rbtree functions with __attribute__((unused)). commit 87151c8a7becf95c8ffd228ec2bf5eccaf355026 Author: Ben Noordhuis Date: Fri Mar 16 02:28:44 2012 +0100 Use RB_GENERATE_STATIC, not RB_GENERATE_INTERNAL. commit 163d8de392df7bc8b2f87ccb62a3e8c1a49eef92 Author: Bert Belder Date: Fri Mar 16 02:28:26 2012 +0100 Add UV_ENOSPC and mappings to it Closes GH-337 commit aff94a069ca511caebcbcc9b8c50e2293b3d1d66 Author: Bert Belder Date: Fri Mar 16 02:28:26 2012 +0100 Add UV_ENOSPC and mappings to it Closes GH-337 commit dfda5009c24ac7bd674a26069a9008a0d4edae73 Author: Ben Noordhuis Date: Fri Mar 16 00:49:26 2012 +0100 unix, win: store ares handles in a binary tree Store the uv_ares_task_t handles in a red-black tree, not a linked list. Fixes #72. commit c21184c103a0cce688be440e2ad6c641793ec747 Author: Ben Noordhuis Date: Fri Mar 16 00:48:06 2012 +0100 test: make variables in benchmark-ares static commit 60311566021c60e356c37720332bdbdf962618fe Author: Ben Noordhuis Date: Thu Mar 15 16:06:29 2012 +0100 test: silence compiler warning main_proc is never read without having been initialized first but gcc 4.4.x fails to infer that. commit 7a2bd054936fe4afeb4abc8df02844e6a048fbfa Author: Ben Noordhuis Date: Thu Mar 15 02:12:49 2012 +0100 Fix include guard in tree.h and ngx-queue.h The C99 standard reserves all identifiers (including macros) that start with an underscore and a capital letter. Fixes #260. commit 66a959c405222da90765dbcc28c8d0d0bbe4d3cf Author: Ben Noordhuis Date: Thu Mar 15 01:01:19 2012 +0100 linux: try inotify_init if inotify_init1 returns ENOSYS The kernel may be older than the kernel headers that libuv is compiled against. commit 6dcce92d446311d740203fecfe35fbb8a7dd260a Author: Ben Noordhuis Date: Fri Mar 9 09:15:43 2012 -0800 unix: replace C99/C++ comments, fix build commit 1b6df97690b432d270ff3c0aae16b4cd52f18794 Author: Ben Noordhuis Date: Thu Mar 15 01:01:19 2012 +0100 linux: try inotify_init if inotify_init1 returns ENOSYS The kernel may be older than the kernel headers that libuv is compiled against. commit db413f3806356a632774b8a589546fc6788debd6 Author: okuoku Date: Sun Mar 11 22:40:39 2012 +0900 win: Fix MinGW32 build commit 8c78cb40ff8273f85212f0519fcf2204892e6820 Author: Ben Noordhuis Date: Fri Mar 9 09:15:43 2012 -0800 unix: replace C99/C++ comments, fix build commit e1901629759ea998fa133369e5c31cb767f383d2 Author: Ben Noordhuis Date: Fri Mar 9 03:16:08 2012 +0100 test: test cross-process handle send/recv commit 71eea07a95ecdbd8f91b449cd6ba12f306309d61 Author: Ben Noordhuis Date: Thu Mar 8 17:59:46 2012 +0100 unix: add support for receiving UNIX sockets Until now, all received file descriptors were reported as being UV_TCP streams: AF_INET/AF_INET6 sockets of type SOCK_STREAM. This commit adds support for AF_UNIX/AF_FILE sockets (UV_NAMED_PIPE in libuv nomenclature). Support for UV_UDP handles (AF_INET/AF_INET6 sockets of type SOCK_DGRAM) still needs to be implemented. commit 8ffad48818f4683ea88ce7269285e42a42422018 Author: Bert Belder Date: Fri Mar 9 17:50:53 2012 +0100 Make the thread_create benchmark not time out commit 0d6aa2a2e5af7dac163243ed3d4d908abc9911d5 Author: Bert Belder Date: Fri Mar 9 17:15:00 2012 +0100 Windows: output newline before output from passed tests commit 18b37d4a49addab1ec2a6cb56bb700c8b14cab40 Author: Bert Belder Date: Fri Mar 9 17:04:26 2012 +0100 Windows: fix compiler warnings commit 019118c3abcf3e26c4b4e6e49dbdf4e0ec5071b0 Author: Bert Belder Date: Fri Mar 9 17:04:03 2012 +0100 Windows: report UV_ENOTSOCK when we opened a file instead of a pipe Makes the pipe_connect_to_file test pass on Windows. commit e99fba47c8d9bcda3ad5f6b95a25de77410da6c8 Merge: 1c8cf61 5d21056 Author: Bert Belder Date: Fri Mar 9 16:41:12 2012 +0100 Merge remote-tracking branch 'origin/v0.6' Conflicts: src/win/pipe.c test/run-tests.c commit 5d21056277bf95a6703dfa107d35488cd8f960b2 Author: Bert Belder Date: Fri Mar 9 04:58:49 2012 +0100 Windows: make sure that shutdown_cb is always called This patch changes how uv-win uses the UV_SHUTTING and UV_SHUT flags. UV_SHUT is now only used for tcp handles to track whether shutdown() has actually been called. UV_SHUTTING has the more generic meaning of "no longer readable". It would be good to replace it by an actual UV_READABLE flag in the future. This makes the shutdown_close_tcp and shutdown_close_pipe tests pass on windows. commit 95296dfa3cd8c88b3af8a94c95b8df51a6367c37 Author: Bert Belder Date: Fri Mar 9 04:52:48 2012 +0100 Windows: make the refcount tests pass commit 18823270aa800da0e54eb86ec08e22dfe3e7e5fb Author: Bert Belder Date: Fri Mar 9 04:42:21 2012 +0100 Windows: fix connecting a pipe in the thread pool The code didn't function. Fixes the pipe_pound benchmarks. commit 3aa6069abf0e36eb7d41eb078fadf7299b7a7918 Author: Bert Belder Date: Fri Mar 9 04:37:05 2012 +0100 Windows test runner: show process name instead of test name If a test failed we would previously see: Output from process `test_foo`: blah Output from process `test_foo`: (nothing) This commit changes it to: Output from process `test_foo`: blah Output from process `foo_helper`: (nothing) commit 50216706c2014ad6d8ee3bd48e63e1a97790057b Author: Bert Belder Date: Fri Mar 9 04:34:02 2012 +0100 Test runner: fix compiler warnings commit f285caf0b53de01c2a0d4591467bffb7134a81c7 Author: Bert Belder Date: Fri Mar 9 04:33:33 2012 +0100 Test counters_init: fix compiler warnings commit aafa7db1d4ba7ad7645a3008335bf30cd272277a Author: Bert Belder Date: Fri Mar 9 04:33:04 2012 +0100 Test benchmark_pound: fix compilation problem commit abc4f56ff02a33ac318bcef4281c64b3167db1de Author: Bert Belder Date: Fri Mar 9 04:32:24 2012 +0100 Test chown_root: make it pass on windows commit 09a0d61e7bd4965f0a2d9219943b7eff9c3d9944 Author: Bert Belder Date: Fri Mar 9 04:31:55 2012 +0100 Test cwd_and_chdir: don't chdir to "" or "c:" It should not strip the trailing (back)slash from a root directory. commit 422a898a7f77ba0180dd3fe2b32738ba413b2e86 Author: Bert Belder Date: Fri Mar 9 04:29:45 2012 +0100 Tests: verify that shutdown_cb is always called commit fb65d74c84d88405446bcea87a9f5199728cc5b3 Author: Bert Belder Date: Fri Mar 9 04:26:51 2012 +0100 Tests: verify that uv_write and uv_shutdown ref the event loop commit ec97ba801469d797d468c06d4db7c5e0afb6d0ac Author: Bert Belder Date: Fri Mar 9 04:25:08 2012 +0100 Windows uv_fs_stat: cap st_nlink to SHRT_MAX commit 87752ac38bc5d6ca0cb12504ef07e2c2ab2a617d Author: Bert Belder Date: Fri Mar 9 04:59:21 2012 +0100 Fold trailing whitespace commit e53d7e3a11df84b1faf4100d96d5fb94052bff13 Author: Bert Belder Date: Thu Mar 8 16:45:46 2012 +0100 Make test-tty pass with redirected stdio commit 743cab9f9d4aa13d7e3b79a0aaf63341bd6e26e6 Author: Bert Belder Date: Thu Mar 8 16:44:30 2012 +0100 Test runner: avoid process_wait failure when the test process didn't start commit f43f1a7016f86b868dbb8f3377930647f06f1f4b Author: Bert Belder Date: Thu Mar 8 16:43:56 2012 +0100 Windows: avoid uv_guess_handle crash in when fd < 0 Happens only when using a debug version of the crt. commit 1c8cf617f9911148499f1a46ad91969d8a58a26e Author: Frank Denis Date: Thu Mar 1 18:22:16 2012 -0800 windows: initialize ares handles list We need to initialize the ares handles linked list or else bad things can happen when we try to perform async lookups. commit 2ef5798c6f0513914bf83aa910b2535d9a1d5948 Merge: d07f246 1ac71a3 Author: Bert Belder Date: Thu Mar 8 03:22:10 2012 +0100 Merge remote-tracking branch 'origin/v0.6' Conflicts: src/unix/core.c commit 1ac71a31e9ae4eb1e8c6c9af5c2a9f4b8b62ba01 Author: Bert Belder Date: Wed Mar 7 21:21:50 2012 +0100 Map EBUSY and ENOTEMPTY errors commit d07f2466d0a10ab02db588374dd97c2edd54c7fc Author: Brandon Philips Date: Tue Feb 28 17:27:18 2012 -0800 test: fs: add tests for read EOF This fix was merged without tests: https://github.com/philips/libuv/tree/fix-read-on-windows-to-handle-eof So take tests from igorzi: https://github.com/igorzi/libuv/commit/46024bf33dcc7fc922378fe0d8b4f59f4c2cd605 commit 4f1782a54bbd3be5bf8d129397d11e2a7e05d3b4 Author: Frank Denis Date: Tue Mar 6 14:10:10 2012 -0800 cygwin: we need to include uv-common.h for uv__set_sys_error() commit 5505f2e9063aaf9b52d47315ae4324efbb5834be Author: Nathan Rajlich Date: Mon Mar 5 08:18:06 2012 -0800 Fix typo in uv.h commit 5110465c42a4f0f40dc88ecb9bb7c6a3dd4753b6 Author: Luis Lavena Date: Fri Mar 2 16:31:13 2012 -0300 build: add missing libs required to compile under MinGW GetProcessMemoryInfo is in psapi and GetAdaptersAddresses is in iphlpapi commit a93dc7ef11713192d398d08f618248dfabe7fd6c Author: Ben Noordhuis Date: Mon Mar 5 15:28:27 2012 +0100 build: link against libdl on linux commit b55801f2254b8830f4cd3e06741c9546d35284f8 Author: Shigeki Ohtsu Date: Sat Feb 25 01:32:31 2012 +0900 win, unix: add uv_dlerror() and uv_dlerror_free() commit 702f905f73418ddf3c8372663f97229797cbb6a9 Author: Igor Zinkovsky Date: Thu Mar 1 14:32:59 2012 -0800 test: make pipe_connect_to_file succeed with ECONNREFUSED commit 6bbccf1fe0e000fd73e945368466cd27291483e3 Author: Igor Zinkovsky Date: Thu Mar 1 12:11:12 2012 -0800 windows: return UV_ENOTSOCK when doing uv_pipe_connect to a file commit b3fe1830409fff6a55131af3156654ee4a712426 Author: Ben Noordhuis Date: Wed Feb 29 15:55:05 2012 +0100 unix: fix fs_event refcount bug on darwin The event loop got unref'd twice when the handle was closed. commit 44c9f63cb1df484fed8117c4611358eca5f67786 Author: Ben Noordhuis Date: Wed Jan 11 20:41:27 2012 +0100 unix: don't rely on libev to track timer state An obscure libev bug sometimes makes it miss state changes. Keep track of the state ourselves. Fixes joyent/node#2515. commit 0459097745637b8789dd363a5a8ebb7ba428d121 Author: Ben Noordhuis Date: Wed Feb 29 15:55:05 2012 +0100 unix: fix fs_event refcount bug on darwin The event loop got unref'd twice when the handle was closed. commit 2f886c892e7ed960f6a1ce2831af58c3c6276977 Author: Ben Noordhuis Date: Wed Jan 11 20:41:27 2012 +0100 unix: don't rely on libev to track timer state An obscure libev bug sometimes makes it miss state changes. Keep track of the state ourselves. Fixes joyent/node#2515. commit ec0eff955eb5efca1e58776047fc09c06246a831 Author: Ben Noordhuis Date: Tue Feb 28 15:22:44 2012 +0100 Revert b3e0ad4, 149d32c, e99fdf0 and ea9baef. Detaching doesn't work yet, the setsid() call fails and leaves the child process attached to the parent's session. Revert "test: Add test case for spawning detached child processes." Revert "win: Implement options.detached for uv_spawn() for Windows." Revert "unix: Implement options.detached for uv_spawn() for unix." Revert "Add "detached" member to uv_process_options_t to denote whether a child process should spawn detached from its parent." This reverts commit ea9baef95ce2208dbf65cba0ddcd90be5492a648. This reverts commit e99fdf0df6738dc9addc432f091896d7f37f7731. This reverts commit 149d32cb96592fc5037c7072e1a3ab9a3fa888a6. This reverts commit b3e0ad4db850a76d1d2c722f93402b3b9f453c55. commit 9a5c1bad909d2845cc0f1e32bb222a90c8ee3d53 Author: Igor Zinkovsky Date: Mon Feb 27 12:54:45 2012 -0800 windows: fix time conversion in stat commit 57c5fa1af1f1af1e9815e7d780243fa553030024 Author: Ben Noordhuis Date: Sun Feb 26 00:36:26 2012 +0100 unix: fix build on iOS _NSGetEnviron() doesn't exist on iOS, use plain `extern char **environ` instead. commit ea9baef95ce2208dbf65cba0ddcd90be5492a648 Author: Charlie McConnell Date: Thu Feb 23 23:16:59 2012 -0800 test: Add test case for spawning detached child processes. commit e99fdf0df6738dc9addc432f091896d7f37f7731 Author: Charlie McConnell Date: Thu Feb 23 23:15:43 2012 -0800 win: Implement options.detached for uv_spawn() for Windows. commit 149d32cb96592fc5037c7072e1a3ab9a3fa888a6 Author: Charlie McConnell Date: Thu Feb 23 13:07:11 2012 -0800 unix: Implement options.detached for uv_spawn() for unix. commit b3e0ad4db850a76d1d2c722f93402b3b9f453c55 Author: Charlie McConnell Date: Thu Feb 23 13:06:09 2012 -0800 Add "detached" member to uv_process_options_t to denote whether a child process should spawn detached from its parent. commit f6c8e78db973a0f57424dba74c97fdd4d2f910f8 Author: Frank Denis Date: Thu Feb 23 14:51:58 2012 -0800 Fix memory leak in uv_exepath() on OSX. commit fbc2154052819d2f6d552423c5b9a5c68a8397a6 Merge: d3efefb fca18c3 Author: Bert Belder Date: Fri Feb 24 01:30:22 2012 +0100 Merge branch 'v0.6' commit fca18c33ac94cd3893e803bf6101d0c9b2823e1a Author: Brandon Philips Date: Thu Feb 23 14:23:02 2012 -0800 win: fs: handle EOF in read in luvit after upgrade libuv from 243cfc to d3efef readSync started failing. It seems that the code cleanup stopped handling EOF Trivially reproduced with this local fs = require('fs') print(fs.readFileSync('foo.luvit')) commit d3efefb0435e950251350744f84e9bbb8d783871 Author: Ben Noordhuis Date: Wed Feb 22 16:52:38 2012 +0100 linux: share inotify fd across event loop Previously, a new inotify fd was created for each watcher, making it quite easy to run into the system-wide fs.inotify.max_user_instances limit (usually 128). Fixes #300. commit 09c722e72b59762ca0f01377ad60ada7d16d8558 Author: Ben Noordhuis Date: Wed Feb 22 16:05:42 2012 +0100 common: make uv__set_*_error() return -1 So you can do `if (errno) return uv__set_sys_error(loop, errno);`. commit 4240f0d710859e9760d02e3953fe6d1d5c6122e7 Author: Ben Noordhuis Date: Thu Feb 23 05:43:21 2012 -0800 test: check uv_fs_*() return values commit a5082e827171bb6d00bce1140cd7d59f0f17653b Author: Ben Noordhuis Date: Thu Feb 23 05:42:45 2012 -0800 test: add proper type casts commit 8f716a9348e3cdbeaf1db40dc2adfaf17c88ae6b Author: Ben Noordhuis Date: Thu Feb 23 01:11:17 2012 +0100 .gitignore gyp build artifacts commit c0e7044862524e9b12a7f770623e7fd9763c6309 Author: Igor Zinkovsky Date: Mon Feb 20 21:53:43 2012 -0800 windows: avoid IOCP short-circuit if non-ifs lsps are detected commit e504719e17f92bd789da9098bfd65065d223cc64 Author: Ben Noordhuis Date: Tue Feb 21 13:26:42 2012 +0100 linux: fix signedness issue in uv_exepath() readlink() returns -1 on error. The <= 0 check failed to catch that because the return value was implicitly cast to size_t, which is unsigned. commit 75ab1ba77467cab272ee8302ca4e9d1be306d2f6 Author: Frank Denis Date: Fri Feb 17 14:13:10 2012 -0800 linux: uclibc <0.9.32 doesn't have uclibc didn't provide ifaddrs.h before version 0.9.32 It explicitly didn't install it because (quoting) "the corresponding functionality is disabled". So, fix libuv on uclibc < 0.9.32 by returning ENOSYS for uv_interface_addresses() commit 86ebe48660ed767dc354d59fa5213d94dd517962 Author: Bert Belder Date: Thu Feb 16 23:58:14 2012 +0100 Windows: add error mappings that map to EPIPE commit 372ed18986ff63fd5511a71ac729c2fc7b3df933 Author: Frank Denis Date: Thu Feb 9 12:10:48 2012 -0800 Add more fixes for Dragonfly BSD. commit e19724912de3469b4b9d160a21f2be7f61cb28da Author: Frank Denis Date: Thu Feb 9 12:00:01 2012 -0800 Fix libuv on OpenBSD. struct kproc2 doesn't exist any more. commit 783753e57f9c201f94be3eb1b58b228c1a41dca0 Author: Frank Denis Date: Thu Feb 9 11:59:34 2012 -0800 Remove unused variables on NetBSD. commit b8649fdf00d0ddab8c95df2a5af80a5c3c97fca1 Author: Ben Noordhuis Date: Mon Feb 13 22:37:21 2012 +0100 unix: don't flush tty on switch to raw mode Drain, don't flush the tty when switching from cooked to raw mode. Prevents buffered keystrokes from getting lost. Switching back to cooked mode still flushes. Fixes joyent/node#2744. commit 1d942e2ad48c9a4309256558bae88ac310b956dd Merge: 4e1f2b1 bc8b990 Author: Bert Belder Date: Mon Feb 13 20:02:39 2012 +0100 Merge branch 'v0.6' commit bc8b99097a1bc45df08d60d66856fc7663b3bd03 Author: Bert Belder Date: Mon Feb 13 19:13:37 2012 +0100 win: add ERROR_FILENAME_EXCED_RANGE mapping, fix fs_file_nametoolong test commit 6c80bf34d375e939189b35f7c6f087a182077dac Author: Bert Belder Date: Mon Feb 13 19:00:59 2012 +0100 Clean up error handling in win/fs.c, add some error mappings commit c1cea705ba91a1d38f89168bfedf078275f0e546 Author: Ben Noordhuis Date: Mon Feb 13 14:08:27 2012 +0100 windows: map WSAETIMEDOUT to UV_ETIMEDOUT commit 4e1f2b1f6484a186876690ca8bddb05481012aa0 Merge: c5aa86b f9be43a Author: Ben Noordhuis Date: Sun Feb 12 16:10:05 2012 +0100 Merge remote-tracking branch 'origin/v0.6' commit c5aa86bd39389d48101cda60e110a94565a77620 Author: Ben Noordhuis Date: Sun Feb 12 15:46:17 2012 +0100 Remove uv_import() and uv_export(). Not needed anymore now that support for isolates has been removed from Node. This commit reverts the following commits: 812e410 test: fix up stream import/export test e34dc13 unix: implement uv_import() and uv_export() d1a0e8e test: fix undefined macro error 2ce0058 import/export streams accross loops commit f9be43a564c55a6e28cc2de730cb8d7131d8e558 Author: Igor Zinkovsky Date: Wed Feb 8 12:01:33 2012 -0800 support half-duplex pipes commit 53eb9935cbe07efe2823249c59f79103b8b0689f Author: Igor Zinkovsky Date: Thu Feb 9 12:59:41 2012 -0800 fix windows build commit 62206c2db0ddd944cd0c447492da9b0de9c476a6 Author: Ben Noordhuis Date: Thu Feb 9 22:12:12 2012 +0100 Clarify API doc comments in uv.h commit c800043112a873a0fab1c5df2c76a958a2b012e7 Author: Luis Lavena Date: Mon Feb 6 19:15:03 2012 -0300 Add missing IPV6_HOPLIMIT definition for MinGW Closes GH-307 commit dbc046cb7f3705d9f9a386e22f48e7996624909a Author: Nathan Rajlich Date: Mon Feb 6 00:21:33 2012 -0800 Add EXDEV to the errno map. commit 4a5f3bbd51e8fa0b3abe6ecdfcbf353d1f944199 Author: Ben Noordhuis Date: Mon Feb 6 17:26:34 2012 +0100 eio: don't use futimes() on linux uclibc does not provide the syscall wrapper. Translate it into a direct utimesat syscall if available, else fail with ENOSYS. commit e53302fceadc69585f2e2f53d9a9ef9da78011d0 Author: Ben Noordhuis Date: Mon Feb 6 16:44:57 2012 +0100 Explicitly export libuv symbols if gcc >= 4. Only export symbols that are part of the libuv API, hide everything else. Prevents symbol clashes in applications and libraries that depend on libuv and speeds up link times to boot. commit 9fa2cf2eacde4a740f8b2b3e9519bcdcf1be6047 Author: Roman Shtylman Date: Thu Jan 19 11:07:28 2012 -0500 test: add multicast TTL test commit 443445a3c61d2ce5020c9e4bc2ee9a10bc7560fc Author: Bert Belder Date: Sun Feb 5 19:54:04 2012 +0100 Windows: reset brightness when reverting to default text color commit e2565c332aa5daab090cb436d5255c5e86faeec0 Author: Maciej Małecki Date: Wed Jan 25 12:42:46 2012 +0100 win: map `ERROR_CANT_RESOLVE_FILENAME` to `UV_ENAMETOOLONG` commit 0596c59bc3e0d5083c11abd6a558e21e94de3066 Author: Maciej Małecki Date: Wed Jan 25 12:39:44 2012 +0100 test: test if `UV_ELOOP` mapping works commit 3ff3626e52144d62b685d1ced472fee2cc9e08d9 Author: Maciej Małecki Date: Wed Jan 25 12:10:33 2012 +0100 unix: map `ELOOP` to `UV_ELOOP` commit 2f182f445161a823800b94e434c66bedd0b8cac3 Author: Ben Noordhuis Date: Fri Feb 3 16:18:50 2012 +0100 unix: map ECONNABORTED commit 267e75dda2b6b7ecf9501764a42416122a4f0ff5 Author: Bert Belder Date: Thu Feb 2 16:23:57 2012 +0100 Windows: better stat implementation commit 495853ee2b5d25f3848264139ab5214ddfc602bb Author: Igor Zinkovsky Date: Wed Feb 1 12:38:14 2012 -0800 windows: map ERROR_ACCESS_DENIED to UV_EPERM commit 65bbf02dc58952423ac486e76fe290aefa8da22f Author: Ben Noordhuis Date: Wed Feb 1 15:24:02 2012 +0100 build: bump _WIN32_WINNT to 0x600 Commit b471b33 updated the Makefile, this commit updates the gyp file. commit 6e995bd0b067621c7a0913d8eae4ea96e98352d3 Author: isaacs Date: Tue Jan 31 19:43:13 2012 -0800 Update AUTHORS commit 243cfcd078fea62662201d92d58f4923334ebc5a Merge: 812e410 4cfda74 Author: isaacs Date: Tue Jan 31 18:00:59 2012 -0800 Merge remote-tracking branch 'ry/v0.6' commit 4cfda74de4a3901828942e9418c43a434c0accf6 Author: Brandon Philips Date: Fri Jan 27 15:33:25 2012 -0800 uv.h: add EPERM to errno map to fix regression EPERM isn't mapped in so chown returns an unknown error. This is a regression from 0.4.12. philips:node/ (master*) $ cat chown.js var fs = require('fs') fs.chown("/tmp/foobar", 100, 100, function(er){ console.log(er);}) philips:node/ (master*) $ ls -la /tmp/foobar total 0 drwxr-xr-x 2 root wheel 68 Jan 24 17:21 . 0.4 --- philips:node/ (master*) $ /usr/local/Cellar/node/0.4.12/bin/node chown.js { stack: [Getter/Setter], arguments: undefined, type: undefined, message: 'EPERM, Operation not permitted \'/tmp/foobar\'', errno: 1, code: 'EPERM', path: '/tmp/foobar' } master ------ philips:node/ (master*) $ ./node chown.js { [Error: UNKNOWN, unknown error '/tmp/foobar'] errno: -1, code: 'UNKNOWN', path: '/tmp/foobar' } AFTER ----- philips:node/ (master*) $ ./node chown.js { [Error: EPERM, operation not permitted '/tmp/foobar'] errno: 49, code: 'EPERM', path: '/tmp/foobar' } commit 3eb94e92f70cf8fa9657b318e11912776e77206c Author: Bert Belder Date: Fri Jan 27 16:31:27 2012 +0100 Implement udp multicast methods on windows uv_udp_set_membership is not supported for UDP-IPv6 sockets yet. commit 62d936047729dbfc7c3846a2a12c2db1c6248368 Author: Bert Belder Date: Tue Jan 31 15:54:17 2012 +0100 Windows: enable SO_REUSEADDR for datagram sockets commit 8c8e6532bf72def18a2827d0180b903bcee90331 Author: Bert Belder Date: Tue Jan 31 15:54:34 2012 +0100 test-multicast-join: don't attempt to bind to a multicast address Does not work on Windows. Bind to a normal interface first, then join the multicast group instead. commit 45d7bd88c9df0facb3ce3dc4f7fdd24e54c8512c Author: Ben Noordhuis Date: Tue Jan 31 16:50:56 2012 +0100 unix: explain SO_REUSEADDR and SO_REUSEPORT commit cd16ba51867e5ee171737ec8fcef7067ce526cec Author: Ben Noordhuis Date: Sat Jan 28 02:16:00 2012 +0100 test: add UDP broadcast/multicast/ttl tests commit 7b83b99fdc1734e5710742e7efc981949585a6ee Author: Bert Belder Date: Tue Jan 31 14:28:04 2012 +0100 Windows: try to set up vc environment when not running from vs command prompt commit 812e410772e6052bf8a1c216744a9a82ba70a42c Author: Ben Noordhuis Date: Mon Jan 30 20:35:16 2012 +0100 test: fix up stream import/export test commit e34dc134969ea2687bb42fcd9fee4570658ba2a5 Author: Ben Noordhuis Date: Sat Jan 21 04:31:25 2012 +0100 unix: implement uv_import() and uv_export() commit abdc3efffe87f8b29f58021d034b550f848fa8ae Author: Ben Noordhuis Date: Sat Jan 21 04:29:29 2012 +0100 unix: add uv__dup() commit d1a0e8e7e23bd40c1323cf1ef597171d1f6104ae Author: Ben Noordhuis Date: Sat Jan 21 04:19:53 2012 +0100 test: fix undefined macro error commit 2ce0058251373bc08016acd579aaf5bb0d8494c3 Author: Igor Zinkovsky Date: Thu Jan 19 16:18:55 2012 -0800 import/export streams accross loops commit cdb44df86da9cdf57b114e03cc41b68d5a8f80cf Author: Ben Noordhuis Date: Sat Jan 21 04:01:39 2012 +0100 unix: add UNREACHABLE() macro Asserts and aborts when program flow reaches a place it shouldn't. commit 98c0498dbc00850d8d1a01c4111d143d80d96a9b Author: isaacs Date: Mon Jan 30 11:28:54 2012 -0800 unix: Remove assert in uv__pipe_accept This assert unnecessarily prevents people from using the pipe_wrap class in node to send file descriptors over sockets. commit f9b478cfd8e52aed25cb0968a753d5aef993f657 Author: Ben Noordhuis Date: Sat Jan 28 16:51:05 2012 +0100 test: add windows-only uv_fs_stat regression test commit 74cff551d5d827587ddf8b90ee8c05541ce4ec59 Author: Brandon Benvie Date: Sat Jan 28 03:55:21 2012 -0500 windows: fix off-by-one error in uv_fs_stat uv__is_root typo caused incorrect fs.exists results in Node. commit 332b72e589cd105e83b619c5b40889f0401c63dc Author: Ben Noordhuis Date: Sat Jan 28 01:18:01 2012 +0100 sunos: fix uv_udp_set_ttl and uv_udp_set_multicast_loop It turns out that setsockopt(IP_TTL) *does* expect an int, whereas setsockopt(IP_MULTICAST_LOOP) needs a char. commit 16124bb34e8afdf0c9a8e968bc3f2b4b3594134a Author: Ben Noordhuis Date: Sat Jan 28 00:11:45 2012 +0100 sunos: fix uv_udp_set_ttl and uv_udp_multicast_ttl The argument to setsockopt(IP_TTL|IP_MULTICAST_TTL) should be a char, not an int like on other Unices. commit 3de0411591c8fb31cbccd32632f675ebe235cd5a Merge: 9974825 3f1bad2 Author: Ben Noordhuis Date: Fri Jan 27 22:23:26 2012 +0100 Merge remote-tracking branch 'origin/v0.6' commit 3f1bad205051b11368191a4c085c76782c4ab4b4 Author: Ben Noordhuis Date: Fri Jan 27 22:04:46 2012 +0100 test: add missing return statement in fs_stat_root commit 92b260c0654d4b1524271a8ae0f24922445df182 Author: Bert Belder Date: Fri Jan 27 18:15:10 2012 +0100 windows: fix stat("c:\\") regression commit f9252750e739196090ad06e9b178ad84be24c70f Author: Bert Belder Date: Fri Jan 27 16:29:57 2012 +0100 Fix windows build commit 9c76d0d74218575c3898ec2e12311800c54c4adc Author: Ben Noordhuis Date: Fri Jan 27 00:31:13 2012 +0100 unix: turn on SO_REUSEPORT for UDP sockets Required on BSD-like systems for local UDP multicast. Without it, the bind() call fails with EADDRINUSE. commit b88bc43543889ac53967ccdb9a6e8338e70c3e14 Author: Ben Noordhuis Date: Mon Jan 23 20:57:12 2012 +0100 unix: implement uv_udp_set_multicast_loop() commit e710fdb518bdb17335cd3f71f1f922c23234f591 Author: Ben Noordhuis Date: Mon Jan 23 20:41:23 2012 +0100 unix: implement uv_udp_set_ttl() commit 02b41f63dc1820928f925a7701d84e3426776263 Author: Ben Noordhuis Date: Mon Jan 23 20:20:29 2012 +0100 Add missing UV_EXTERN declarations in uv.h commit 6554954e3e00d8d308ba980ec50ad5737f119e51 Author: Bert Belder Date: Mon Jan 23 20:21:56 2012 +0100 Windows: add error mapping for WSAENOBUFS commit 3ade5f0011b145e2a2fa9713cba756b89569f6ae Author: Brandon Benvie Date: Sat Jan 21 12:04:21 2012 -0500 Windows: Add support for interpreting axiterm-style colors. commit 24e6c7ec86a3b4c73a4ef76924ff35ec0b02c066 Author: Maciej Małecki Date: Sun Jan 22 02:01:54 2012 +0100 unix: map `ENAMETOOLONG` to `UV_ENAMETOOLONG` With tests. Closes #295 commit edbabe6f83f704aa2f52ef2c33597471bcc5f0f3 Author: Igor Zinkovsky Date: Sun Jan 22 18:00:07 2012 -0800 windows: set error using WSAGetLastError commit 726e36cf7c1daf8b1ecb2d46e1d5eee07b52c7a1 Author: Igor Zinkovsky Date: Sun Jan 22 17:52:20 2012 -0800 implement uv_udp_set_multicast_ttl and uv_udp_set_broadcast on windows commit 497b1ecd0008bd972d20937bed6eeec4578bf458 Author: Dan VerWeire Date: Tue Nov 22 21:47:21 2011 -0500 unix: add uv_udp_set_broadcast() and uv_udp_set_multicast_ttl() commit b674187c38c70772fd2de14de3d727438eb87c8a Author: Dan VerWeire Date: Tue Nov 22 21:45:50 2011 -0500 unix: set SO_REUSEADDR before binding commit 32b291d5bee62400b316e9ea53ec0b95fcf5a104 Author: Ben Noordhuis Date: Thu Jan 19 16:18:37 2012 +0100 build: don't set -mmacosx-version-min It sets __MAC_OS_X_VERSION_MIN_REQUIRED__, which is what we use for feature detection. commit 646c80bb41acf9f8cadbc487f7b360b3462e2c26 Author: Ben Noordhuis Date: Thu Jan 19 15:01:23 2012 +0100 build: generate Makefiles on OS X commit 98f3446c4351ab935f3ba060b1962326d97ff3a6 Author: Ben Noordhuis Date: Thu Jan 19 14:48:38 2012 +0100 unix: don't close kqueue fd in kqueue_fork() The file descriptor is not inherited by the child process. Trying to close it is not just useless, it's actively harmful - if the close() call succeeds, it will have closed an altogether different file descriptor. commit bf8ccfce18bf758d75b0e4d1cbcf6b36459fe75e Author: Ben Noordhuis Date: Tue Jan 17 17:47:31 2012 +0100 unix: fix segfault in uv_guess_handle() Fixes #293. commit 0e6e4abedcfe02ccf5da4c4257faa113170c20b4 Author: Ben Noordhuis Date: Sat Jan 14 01:21:25 2012 +0100 unix: fix udp recv_start refcount Calling uv_udp_recv_start() should not bump the event loop's reference count. Fixes failing test udp_ref2. commit 6d9c9a533fdc8a5e43d0f2a77c85ef643247be3a Author: Ben Noordhuis Date: Fri Jan 13 17:45:41 2012 +0100 Add uv_loop_refcount() function, debug tool. commit ac218a7ed5e8e0474a18c4716fb7eb151a685b26 Author: Ben Noordhuis Date: Sat Jan 14 00:11:27 2012 +0100 test: add lots of refcount tests commit dc3b80a50f53c7c69ebeeb685c1371bc5589807e Author: Ben Noordhuis Date: Fri Jan 13 19:15:50 2012 +0100 test: add udp4_echo_server helper commit a13584bec7545d62055627e9d8b58b832058f06a Author: Ben Noordhuis Date: Fri Jan 13 15:59:53 2012 +0100 unix: remove unused #define commit 52fba1a38fcd333d7f585778ca2c66838a473ce2 Author: Ben Noordhuis Date: Thu Jan 12 16:00:31 2012 +0100 unix: fix compiler warning commit 855764406e3a1e92370460b87062d745f59b56cc Author: Igor Zinkovsky Date: Wed Jan 11 13:29:27 2012 -0800 windows: improve uv_fs_stat performance (by about 60%) commit 803f5a096e1ce3d1b22c59565185e5a728ec2abd Author: Ben Noordhuis Date: Mon Jan 9 15:42:56 2012 +0100 linux: fix build on older distros commit 38fc6ad839734a3f76d2535b8f62d92e9cfef8c7 Author: Ben Noordhuis Date: Mon Jan 2 09:55:48 2012 +0100 unix: unref fs event watcher Watchers were being ref-counted twice which wasn't harmful in itself but stopped uv_unref() from working like you'd expect it to. commit 43e3ac579871819f7730cf60374e49b7ec81fd1f Author: Igor Zinkovsky Date: Fri Dec 30 15:46:17 2011 -0800 windows: uv_fs_rename to replace the new file if it exists fixes #283 commit 4d1d02fd18060017a63b1baf555e360245363b83 Author: Igor Zinkovsky Date: Mon Dec 26 14:01:48 2011 -0800 windows: ensure that uv_fs_event callbacks have long names commit 39481b78963cbb272d0a3199afc4bedf4117af07 Author: Ben Noordhuis Date: Thu Dec 22 17:19:22 2011 +0100 docs: add c-ares license note commit feb267e61184887bb0cd1da09e62762ef0bbe9a4 Author: Ben Noordhuis Date: Sun Dec 18 16:49:37 2011 +0100 unix: it's legal for dlsym() to return NULL A symbol name can map to NULL. Check dlerror() to see if a real error happened. commit e9235a39f85e3f3bf9b907dcf3a9240b88a77e05 Author: Ben Noordhuis Date: Sun Dec 18 16:47:06 2011 +0100 unix: the dl functions don't set errno commit d808cf9023844a71a606b4f94bf39c3ca565aa11 Author: Ben Noordhuis Date: Fri Dec 16 15:50:19 2011 +0100 linux: detect if inotify syscalls are supported commit 6b3075cd730ff1cb3cf16c68c7b68791c1068bff Author: Ben Noordhuis Date: Thu Nov 17 18:00:51 2011 +0100 linux: improve kernel feature detection Do not check for minimum kernel and glibc versions, just check that the kernel headers export the syscall number and invoke the syscall directly. Effectively bypasses glibc. commit a4c8ffa3c2f6f927bff10b9e684f4b9513a97826 Author: Igor Zinkovsky Date: Mon Dec 12 12:15:29 2011 -0800 windows: correctly check the result of malloc commit 4e99cd4e29d3b6fae1dd9cd701997259f9040113 Author: Igor Zinkovsky Date: Mon Dec 12 12:15:29 2011 -0800 windows: fix memory leak when non-zero tcp reads are used commit ba52023ef333d41129db2f51c9e507c623022b02 Author: Shigeki Ohtsu Date: Mon Dec 12 16:09:24 2011 +0900 Fix missing increments of loop->counters commit 9fe9e233cfdbcc3ed93363722688b3bda1f01ef5 Author: Ben Noordhuis Date: Mon Dec 12 02:15:22 2011 +0100 .gitignore core and vgcore files. commit 12cefcaa867c57a9db38d3973d945bd7da3a3e10 Author: Ben Noordhuis Date: Mon Dec 12 02:14:25 2011 +0100 Update AUTHORS and .mailmap commit b5762b26ff38a7caa78ef88d5836410660be23e6 Author: Maciej Małecki Date: Sat Dec 10 01:18:18 2011 +0100 doc: add Travis CI build status image commit 5989961184bdf52f5178f74a84c4556ac0a26de3 Author: Maciej Małecki Date: Fri Dec 9 22:27:00 2011 +0100 test: add `.travis.yml` for testing on Travis CI commit b06da4cbab5e2726fa5c02ad68e0dee203032dcd Author: Maciej Małecki Date: Sat Dec 10 00:24:08 2011 +0100 test: make test runner return non-zero in case of failure commit b89c31b93632dcbc03bb4a46f06e47444ce8e9c3 Author: Ben Noordhuis Date: Tue Dec 6 22:20:30 2011 +0100 unix: fix warning: return 0 in function returning void commit 0db3274f8af73b9d8a7757f7fdc699e7f7f92349 Author: Ben Noordhuis Date: Mon Dec 5 16:56:28 2011 +0100 unix: check UV_CLOSING flag in uv__write() uv__write() runs after the read callbacks have fired. Said callbacks may have closed the handle, handle that graciously. commit 34e95d1a4cd19051464a18f8c106b43e2053ae99 Author: Ben Noordhuis Date: Sun Dec 4 13:20:21 2011 +0100 unix: make it safe to delete the default loop Fixes a potential free() of non-malloc'ed memory. commit 248ca5d61283b98066828cb522adaf4c7187f570 Author: Ben Noordhuis Date: Sat Dec 3 23:31:02 2011 +0100 unix: translate ETIMEDOUT to UV_ETIMEDOUT commit 60630dab0f336f5c611b9c76ddd37734a3a72270 Author: Igor Zinkovsky Date: Thu Dec 1 00:38:08 2011 -0800 windows: enable pending pipe instances knob commit 9c064fbbd20cff5e985d9856930769031809a368 Author: Bert Belder Date: Thu Dec 1 19:38:58 2011 +0100 Win: utf-8 decoder bug when compiling with gcc commit 2a6a4a08646ba36d436ea9bfa7af796c1cdc6230 Author: Bert Belder Date: Thu Dec 1 22:44:13 2011 +0100 Fix MinGW and MinGW-w64 builds commit f71f5a02e6c3bff5249b1c13cd94fbd21070ed9c Author: Yuki Okumura Date: Fri Oct 21 00:42:40 2011 +0900 Win: lower case tlhelp32.h to support cross compilation commit dceb3e65cafdfce9cc931c285d6e742e74ac7cc9 Author: Igor Zinkovsky Date: Wed Nov 30 15:31:39 2011 -0800 uv_cwd + uv_chdir commit ec37d05d6669039a6e756d303638de3fba7461d5 Author: Ben Noordhuis Date: Thu Dec 1 21:02:29 2011 +0100 Revert "build: compile with -D__DARWIN_64_BIT_INO_T on OS X" This reverts commit 01fbe7bf37909736b4ba99d30c34378f561d6761. __DARWIN_64_BIT_INO_T is a no-op in most cases and might be actively harmful in some others. commit fadfd0f5b2889fc097ea6b3bc3f008d7cd7ce048 Author: Ben Noordhuis Date: Thu Dec 1 14:24:25 2011 +0100 Update AUTHORS and .mailmap commit c69ccfabc21a2032c40e97f08412f78bd03bbb53 Author: Bruce Mitchener Date: Thu Dec 1 20:15:18 2011 +0700 Remove incorrect documentation comment. The callback for uv_close does not have a status parameter. commit b684deb4f4d1e939813fc8195be219ab70e67c95 Author: Bruce Mitchener Date: Fri Nov 25 16:32:32 2011 +0700 Note that uv_is_active works on timers. commit d513d9bb4178d284be70c43eaa51d982ca86071f Author: Bruce Mitchener Date: Wed Nov 30 11:26:52 2011 +0700 Fix typos. commit fce90652ed38ab0925131ed141972354a494933b Author: Bert Belder Date: Mon Nov 28 19:36:41 2011 +0100 Windows: avoid the loop starvation bug. Closes GH-154 commit 01f64f66121d0c20494d3fa0119edb05e5da42f4 Author: Bert Belder Date: Fri Nov 25 10:11:29 2011 +0100 Win: get rid of UV_EAINONAME, use UV_ENOENT instead commit b4698d414bcec0c674f6312e687240310b1392d4 Author: Bert Belder Date: Fri Nov 25 10:03:27 2011 +0100 Strip trailing whitespace commit cfa4112950b1f897fda7bab4e7bfd487d2d06d9e Author: Igor Zinkovsky Date: Thu Nov 24 12:40:52 2011 -0800 windows: make uv_fs_stat use open + fstat to support long paths commit 3a50f8fca0987889a7f4d4064d6605588f817520 Author: Bert Belder Date: Fri Nov 25 02:04:21 2011 +0100 Win: fix uv_getaddrinfo error reporting commit 45b976abd9591ea1eddee43f9418bb479323834d Author: Bert Belder Date: Fri Nov 25 00:59:07 2011 +0100 Win: add mapping for ERROR_ACCESS_DENIED commit ea63f069877eb20a5847add289b4b959c70db25e Author: Bert Belder Date: Thu Nov 24 19:13:46 2011 +0100 Win: ignore ECONNRESET when receiving udp packets commit 261d792a7ae44b35a5d2dd557c5f7b276bd79afe Author: Bert Belder Date: Thu Nov 24 18:00:04 2011 +0100 Win: map STATUS_HOPLIMIT_EXCEEDED status to WSAECONNRESET error commit 0ded5d29cd71ec1d946a606ddc25724c3ac6588e Author: Bert Belder Date: Thu Nov 24 17:59:24 2011 +0100 Win: fix improper treatment of real ntstatus codes as mapped win32 errors commit 96c230344dd576e69abf1ec041d4d656461d8331 Author: Ben Noordhuis Date: Wed Nov 23 18:58:41 2011 +0100 linux: fix build when compiling with -std=c89 -pedantic commit 92c9e95721af756fb1237986459a9730652d91c7 Author: Ben Noordhuis Date: Mon Nov 21 23:55:17 2011 +0100 unix: fix stray pointer free() when HAVE_FUTIMES=0 uv_fs_futime() failed to initialize req.path when HAVE_FUTIMES=0. uv_fs_req_cleanup() later on tried to free the bogus pointer. commit 1b9d00fb4265093d1770e2870fad1d4921c5ac5c Author: Shimon Doodkin Date: Sun Nov 20 05:32:21 2011 +0200 cygwin: fix undefined _SC_PAGESIZE unistd.h was not included, when tried to build node 0.5.9 had an error of: _SC_PAGESIZE undefined commit 01fbe7bf37909736b4ba99d30c34378f561d6761 Author: Ben Noordhuis Date: Fri Nov 18 14:04:21 2011 +0100 build: compile with -D__DARWIN_64_BIT_INO_T on OS X Fixes a struct stat size mismatch on 64 bits machines that made Node crash with a EXC_BAD_ACCESS on startup. Solution proposed by Paddy Byers. commit 2bd181a8d25e32136edb3262d3c631396fb4c09e Author: Ben Noordhuis Date: Tue Sep 27 15:04:45 2011 +0200 unix: properly disarm kqueue fs watcher Fixes "Assertion failed: (revents == EV_LIBUV_KQUEUE_HACK), function uv__fs_event, file ../src/unix/kqueue.c, line 58." commit 08a55467534b1181bb90e669c87f9ff124cd09ab Author: Igor Zinkovsky Date: Thu Nov 17 15:18:32 2011 -0800 windows: return UV_FILE for non-console FILE_TYPE_CHAR commit 2007eb813d66497c384172882b95407be97bd539 Author: Ryan Dahl Date: Wed Nov 16 13:02:16 2011 -0800 Set uv_write_t errno correctly Fixes #206. commit 4ae40b6a3ffcfcfe8b800d0cad216b04cc4d4b6c Author: Ryan Dahl Date: Mon Nov 14 16:14:10 2011 -0800 Bump version to v0.6 commit 62d15a1e62e0ed79f3d40d07dbd270f5baf82cd5 Author: Ben Noordhuis Date: Sun Nov 13 20:02:46 2011 +0100 Update AUTHORS and .mailmap commit 89ea3be6c29234dcf5f4fbc02e7a2947ea9a580b Author: Frank Denis Date: Sat Nov 12 15:36:31 2011 -0800 Add support for DragonFly BSD by sharing code for FreeBSD. commit 93faeb218988849835aa6165b661524e46a64720 Author: Frank Denis Date: Sat Nov 12 15:58:54 2011 -0800 Fix typo that broke libuv on NetBSD: psysconf() -> sysconf() commit d4bfcc28c80bc8a04ed02eca4f6f75007a120f9b Author: Ben Noordhuis Date: Fri Nov 11 18:52:34 2011 +0100 bench: fix compiler warnings commit e2a794e3463f07789665766110d939389b92b5a6 Author: Ben Noordhuis Date: Fri Nov 11 18:52:04 2011 +0100 test: remove dead code commit 9322dd17240d32574d0cab91432d068cd58b24de Author: Frank Denis Date: Thu Nov 10 13:46:19 2011 -0800 Use (void) for a function taking no arguments - fix gcc -Wstrict-prototypes commit 224584c53e614d894efdd0d365bdec2130ed2e48 Author: Ben Noordhuis Date: Thu Nov 10 15:32:27 2011 +0100 sunos: check that event ports supports fs watching commit 26806e2b1c63e8090c261fb3f48f0d36e4bb4445 Author: Ben Noordhuis Date: Thu Nov 10 16:37:03 2011 +0000 sunos: add getaddrinfo() compatibility hack getaddrinfo() returns EAI_MEMORY if strlen(hostname) >= MAXHOSTNAMELEN commit 04dfd46349d3942c73537b4c33c1130864181d2c Author: Ben Noordhuis Date: Thu Nov 10 15:26:12 2011 +0000 unix: remove unused uv__translate_lib_error() function commit 61ef8cc962574bf10b9b3384e2309927461fe932 Author: Ben Noordhuis Date: Mon Sep 26 08:41:19 2011 +0200 freebsd: remove unused variables commit 488964430163c5930ad95d15c90a323855aae444 Author: Ben Noordhuis Date: Thu Nov 10 11:37:08 2011 +0100 Fix warning: comma at end of enumerator list commit 6d5ba42436851248f769f074122db293b4bf56dc Author: Ryan Dahl Date: Wed Nov 9 18:07:07 2011 -0800 Remove unnecessary errno commit 808bb8ed0b621b22d600c2d72359b9a0018df4ef Author: Ryan Dahl Date: Wed Nov 9 18:06:49 2011 -0800 Shared uv_strerror commit fd2b04d784d6cc10ca985a5548835310622bda50 Author: Ryan Dahl Date: Wed Nov 9 17:31:53 2011 -0800 Alternative errno strategy commit f17d4837a8c2e406daa36bce8bd787021a09cef4 Author: Igor Zinkovsky Date: Wed Nov 9 14:55:34 2011 -0800 windows: turn WSAECONNABORTED from WSARecv to UV_ECONNRESET commit 4794c12f5886e8d05658fdecdbce4b4a572340ea Author: Ben Noordhuis Date: Wed Nov 9 13:48:30 2011 +0100 linux: fall back to traditional syscalls if necessary libuv uses feature checks to determine if newer syscalls like pipe2() are available. This works fine until someone compiles libuv against kernel headers that are newer than the actual kernel our software runs on. Fall back to traditional (but race-y!) syscalls when the kernel reports ENOSYS or EINVAL. commit 942c68b80ed85bf1c360803a446bf0cc8cd16de0 Author: Igor Zinkovsky Date: Tue Nov 8 19:23:30 2011 -0800 windows: fix utf16->utf8 conversion in uv_fs_readdir commit 196e14528ff6d5264e46eb22b9b789f10fa4a267 Author: Ryan Dahl Date: Tue Nov 8 16:59:05 2011 -0800 Map UV_ESRCH in uv_err_name commit 2b7774ae49b73baccc43aff9c532443412fb51e3 Author: Bert Belder Date: Wed Nov 9 01:48:04 2011 +0100 Windows: return UV_ESRCH from uv_kill commit a378110f9ecda407cd68b1061d70c7d105957e6c Author: Tj Holowaychuk Date: Mon Nov 7 12:30:02 2011 -0800 Add UV_ESRCH Fixes #239. commit b7da0a69bf721343782f9e8d7ea189f9999feaa2 Author: Ryan Dahl Date: Tue Nov 8 15:05:50 2011 -0800 Add uv__new_artificial_error() commit f1859eb841be2fe48512bc10e64556383f408b01 Author: Igor Zinkovsky Date: Mon Nov 7 15:48:33 2011 -0800 windows: convert WSAECONNABORTED to EOF commit 51df5e3b00942a0b31a999e04b1b647544e7d2b6 Author: Ben Noordhuis Date: Mon Nov 7 09:20:54 2011 +0100 unix: map EISDIR commit 16d48befbaf62c3129cccf70853e43589065bf2e Author: Ben Noordhuis Date: Sun Nov 6 04:08:43 2011 +0100 win: add uv_loop_new() and uv_loop_delete() stubs commit 7b973eb4ad0965594a350b0e69732d0acdcb89c7 Author: Ben Noordhuis Date: Sun Nov 6 04:04:32 2011 +0100 Fix uv_loop_new() and uv_default_loop() function prototypes. commit c468e2ab8836d87a627a13709b200861c08818db Author: Ben Noordhuis Date: Sat Nov 5 03:09:12 2011 +0100 test: fix memory buffer comparison commit 9dc67f5e6157c875e9d717523bbdcd82f87d9ce6 Author: Ben Noordhuis Date: Sat Nov 5 03:07:36 2011 +0100 test: don't use _O_RDWR, windows-ism commit cee56c96f84aaaf629bdedc369bf34009a0dc291 Author: Ben Noordhuis Date: Sat Nov 5 02:58:48 2011 +0100 unix: unbreak linux build, broken in 1997e10 commit 1997e10b507c467b1b25d2a22263620025eafbcf Author: Bert Belder Date: Sat Nov 5 01:42:08 2011 +0100 Add flags to uv_fs_event_init commit faca1402ef1f8398f49402909b1a98d002ee913d Author: Igor Zinkovsky Date: Fri Nov 4 16:06:53 2011 -0700 make uv_pipe_connect return void commit 82cf0b38c000298b6502fdb091bcaa74792f8a1e Author: Igor Zinkovsky Date: Fri Nov 4 15:08:53 2011 -0700 windows: remove quotes from PATH in uv_spawn commit fe97c4dc63552ac830a82340f1c59c2a8bdfafe1 Author: Igor Zinkovsky Date: Fri Nov 4 12:41:23 2011 -0700 windows: honor O_APPEND in uv_fs_open commit 677bb70bfb6378a68da8438c62b1061b2bea57ab Author: saghul Date: Wed Nov 2 16:40:43 2011 +0100 Added missing error codes to uv_err_name commit 9c7ed0dad0a312410596d3c2a132a875dd9350df Author: Ryan Dahl Date: Thu Nov 3 16:30:19 2011 -0700 One more EACCESS -> EACCES commit 681bd290e646deec767b23f80b3c86d10ef44b5b Author: Ryan Dahl Date: Thu Nov 3 16:17:08 2011 -0700 UV_EACCESS -> UV_EACCES In order to match existing Node API. See https://github.com/joyent/node/pull/2001 commit 147487afe63c1719193b57674a24e12d599f2b1f Author: Ryan Dahl Date: Thu Nov 3 16:08:58 2011 -0700 UNIX: Error map ENOTSOCK commit 0698e3f905b30ee464cd9d09dbacfd41ab8c3009 Author: Ryan Dahl Date: Thu Nov 3 15:46:36 2011 -0700 Fix UNIX pipe connect error reporting, add test commit ee8a681ace4589fc7b0069ec5e604a3a90a66a12 Author: Igor Zinkovsky Date: Thu Nov 3 13:59:56 2011 -0700 windows: uv_kill and uv_process_kill to terminate the process on SIGINT commit 1393ee7d26421b414b5d5d0d776cc990b6073c45 Author: Carter Allen Date: Wed Oct 26 11:56:12 2011 -0600 build: remove hard-coded GCC_VERSION setting (OS X/XCode) commit 0fb3769586ac9f9f5d0a1d9e28ec67d448311e07 Author: Igor Zinkovsky Date: Wed Nov 2 19:09:18 2011 -0700 windows: don't emit fs-event callback after uv_fs_event handle is closed commit 77a2477c3f071d36981a214a1fe4b24edeee295f Author: Ben Noordhuis Date: Sun Sep 25 18:09:35 2011 +0200 unix: add EAI_NODATA #ifdef guard, freebsd doesn't have it commit e1bee05ecdbffbe9de37830530ad2ae2f1fb41c8 Author: Ryan Dahl Date: Wed Nov 2 16:46:19 2011 -0700 UNIX: Loop on blocking streams Also removes a superfluous syscall during uv_tty_init for writable TTY streams. commit 74b49e821b8ea63052f28cfa1155e813a1b5f07b Author: Igor Zinkovsky Date: Wed Nov 2 14:05:22 2011 -0700 uv_kill commit 8d5c64adf5764fde0eec13b91ef48b3acfd3a55e Author: Ben Noordhuis Date: Wed Nov 2 17:20:00 2011 +0100 unix: map EAFNOSUPPORT error code commit 7a53924aede6415898a5f4a01b5d0345cf125c9a Author: Igor Zinkovsky Date: Tue Nov 1 15:23:07 2011 -0700 windows: call SetErrorMode on startup to ask the system not to handle critical errors commit 90b0b7d099bbda62ec41fbf345de69eadd9bbff3 Author: Igor Zinkovsky Date: Tue Nov 1 10:27:46 2011 -0700 windows: increase the number of OVERLAPPED_ENTRYs passed to GetQueuedCompletionStatusEx commit 9c6103a479b295bb22e4e109561f71f16a8e52fd Author: Igor Zinkovsky Date: Tue Nov 1 01:13:13 2011 -0700 windows: add tests for uv_tcp_simultaneous_accepts commit 78f4b120a199eee616d61d79185a15567ea1ae83 Author: Igor Zinkovsky Date: Wed Oct 26 13:29:21 2011 -0700 windows: knob for tuning number of concurrent accept requests commit bd82d02467c54ee152be748525deb8b8eb28b2a3 Author: Ben Noordhuis Date: Mon Oct 31 04:19:19 2011 +0100 ev: fix epoll_init file descriptor leak Fix the edge case where epoll_init() leaks a file descriptor when it is called when the process has no open file descriptors. commit 70381cef9bcb7c306bf5204b7da9acdcf14ec74c Author: Ben Noordhuis Date: Sun Oct 30 02:55:00 2011 +0100 unix: add getaddrinfo compatibility hack Revisit in the future. This is not a good hack. commit 84bc18684e40475d724c3163b4a2b116a62a2aa6 Author: Ben Noordhuis Date: Sat Oct 29 05:32:22 2011 +0200 linux: omit superfluous fcntl(F_GETFD) syscall commit c0792e54052bd3222c3b00e45f7e81c87187504a Author: Bert Belder Date: Sat Oct 29 02:00:04 2011 +0200 Windows: the correct way to make TCP_KEEPALIVE work on MinGW commit 99b512e890bd424eaac8139a567733f03a7975a0 Author: Luis Lavena Date: Fri Oct 28 20:09:03 2011 -0300 Windows: use SO_KEEPALIVE instead of TCP_KEEPALIVE MinGW doesn't understand the latter. Closes GH-228. commit ed2b5e60cbfa6ca824408dc792d9282e5b8e9bfd Author: Ben Noordhuis Date: Sat Oct 29 01:28:17 2011 +0200 linux: use ioctl(FIONBIO) to set O_NONBLOCK, saves a syscall commit e4d6509211cbc4dffa26aab0e558ac9ebe8fa04a Author: Ben Noordhuis Date: Sat Oct 29 01:12:15 2011 +0200 build: compile in dl.c on unix commit 90e15f1110f23d27b5f879562d33084290ba3ca8 Author: Bert Belder Date: Sat Oct 29 00:45:47 2011 +0200 Implement uv_dlopen and friends commit c985ea4b10a54335bc4d8c44a0f6c710f62d46d4 Author: Bert Belder Date: Fri Oct 28 11:48:16 2011 +0200 Add uv__new_sys_error commit e9472fe02b484d7d68bb733849d4737c4053ec5c Author: Bert Belder Date: Fri Oct 28 11:43:48 2011 +0200 Prepare libuv for shared library build commit 04b3c65ec8e599a9f77642c83541ea9771f639d4 Author: Bert Belder Date: Fri Oct 28 15:33:04 2011 +0200 Add common.gypi to gyp-generated projects commit f2c6b4106ddfc67f98da695ecf166df5e60e0f37 Author: Ben Noordhuis Date: Fri Oct 28 01:31:55 2011 +0200 unix: have uv_strerror() handle getaddrinfo() errors commit 314d0ee4f62badec69f6ec89722487e38a5a3cf0 Author: Igor Zinkovsky Date: Wed Oct 26 13:32:15 2011 -0700 windows: don't fail uv_listen with UV_EALREADY if already listening. fixes #227. commit 339a1ad252a0f2615e578e2971e0ba4b798b9eea Author: Ben Noordhuis Date: Wed Oct 26 17:11:57 2011 +0200 test: fix warning: implicit declaration of function ‘memcmp’ commit 3e4af533ae4c11811d478ad52095763e318948d9 Author: Ben Noordhuis Date: Wed Oct 26 03:41:49 2011 +0000 sunos: implement file watcher API commit 3ecb319128717e23b1292c53f44e39676609a02d Author: Ben Noordhuis Date: Tue Oct 25 23:50:10 2011 +0000 build: sunos expects -pthreads, not -pthread commit cb6cd92305e1326883afacc40dff6b4d72009310 Author: Ben Noordhuis Date: Tue Oct 25 22:35:46 2011 +0000 build: fix gcc 3.x build Detect gcc version, -fvisibility is a gcc 4.x switch. commit d15b88a9355fbd43c85cf15f97912066c90bbfeb Author: Igor Zinkovsky Date: Tue Oct 25 15:53:19 2011 -0700 windows: implement uv_tcp_nodelay and uv_tcp_keepalive commit 0cb2213db0e617377f78a11768c17956530dc19b Author: Igor Zinkovsky Date: Tue Oct 25 13:07:29 2011 -0700 windows: when sharing a server socket, only call listen in the parent process commit b5d69f9a3e0e3699f88a4fbe60af7d8a3801009c Author: Ryan Dahl Date: Mon Oct 24 14:05:33 2011 -0700 Map EHOSTUNREACH on Unix commit 179f475b2ad64729feb0422f06ce133cb364482a Author: Bert Belder Date: Fri Oct 21 18:42:19 2011 -0700 win: fix fs__readdir buffer overflow bug Thanks Runner Mei for pointing this out. Closes GH-224. commit 66f39250b71d26ba3a97bce3cb19bbedd956a314 Author: Bert Belder Date: Fri Oct 21 18:38:39 2011 -0700 Fix MinGW build commit 45882e0bdc778aef0cfa431b940c293a01ec731f Author: Bert Belder Date: Fri Oct 21 18:38:20 2011 -0700 win: flush output buffer before doing a console reset commit 2dd02829c1a97814144cb87ddcef45da3f0cebf3 Author: Ben Noordhuis Date: Fri Oct 21 18:27:21 2011 -0700 win: fix function prototype Mea culpa. commit ec825ffc62014d40f2d0b1163725af2587277c1e Author: Ben Noordhuis Date: Fri Oct 21 15:37:47 2011 -0700 unix: add TCP keepalive and no-delay control knobs commit 9da53df457f85a803e1a6645cab40c77581566e5 Author: Ben Noordhuis Date: Fri Oct 21 14:13:28 2011 -0700 unix: fix uv_freeaddrinfo() segfault on sunos The system freeaddrinfo() on SunOS does not handle NULL values graciously. commit 773830604de102c7494b6567d2f7eac8decdb964 Author: Igor Zinkovsky Date: Fri Oct 21 13:25:46 2011 -0700 windows: fixes queued_bytes for ipc pipes commit d3967992107551988ef309465974eee67fb92c10 Author: Ben Noordhuis Date: Fri Oct 21 10:00:41 2011 -0700 Change return type of uv_get_*_memory() functions ... from double to uint64_t. Limit use of floating point in public API as much as possible. commit 9757a43a57e21cf17b3139131e35fcc2043562f9 Author: Ben Noordhuis Date: Fri Oct 21 09:54:11 2011 -0700 unix: remove unused variable commit fb7138614daa42f737799833d45eb4ea3268c8a7 Author: Bert Belder Date: Thu Oct 20 19:23:57 2011 -0700 Improve ansi escape code support on windows commit 2c7e8bb137b96e3e05610e98bfe63bb25df9c7e8 Author: Ryan Dahl Date: Thu Oct 20 17:11:08 2011 -0700 Map EAI_NONAME to ENOENT commit 28234d73364756a25d78621eba95902f30413417 Author: Igor Zinkovsky Date: Thu Oct 20 15:10:06 2011 -0700 windows: ref pipe writes to keep the event loop alive commit 54982a23efc2d47333d60223f59e773dec365327 Author: Igor Zinkovsky Date: Wed Oct 19 00:48:38 2011 -0700 windows: stdio over non-overlapped pipes commit cb474b24c1bd77fb2deec4be1830adeb17d435f6 Author: Bert Belder Date: Thu Oct 20 14:53:26 2011 -0700 Ignore rogue DNS servers reported by windows commit c0e5db2d49d43488ad5169a442eed357c616088d Author: Ben Noordhuis Date: Thu Oct 20 14:38:29 2011 -0700 linux: fix events after close bug commit 51e9dbc2bbdba0de482343c0fe116211cddd5ead Author: Bert Belder Date: Thu Oct 20 10:11:04 2011 -0700 Work around windows udp bug, allow zero reads commit e8a418e920dc98fbe34808d8ea9150b66f61ad3a Author: Frank Denis Date: Mon Oct 17 16:55:45 2011 -0700 Fix pasto: uv_udp_recv_start() receives a UDP datagram, it doesn't send data. commit 2069a24e8c48ab661fc5f6a1e73bfc0f910b9513 Author: Ben Noordhuis Date: Sat Oct 15 02:34:30 2011 +0200 unix: fix file descriptor leak commit cdb3601746b615d0c8a968c99032547ebfe1483f Author: Ben Noordhuis Date: Sat Oct 15 02:20:42 2011 +0200 Update AUTHORS and .mailmap commit 456f831389f30f5fcc35f1ce07d63a34e30f039a Author: Igor Zinkovsky Date: Fri Oct 14 15:37:28 2011 -0700 windows: ensure that the ipc frame header is properly initialized commit 1e0d25a39ac4e4df0ffd4d3a50d64118a9b15a26 Author: Ben Noordhuis Date: Sat Oct 15 00:04:30 2011 +0200 build: fix gyp script, broken in 4ab1990 commit 4ab199006458406f60cf6b76798c61e96bb229df Author: Frank DENIS Date: Thu Oct 13 05:38:13 2011 +0200 unix: add support for OpenBSD commit fd9dbb1279bd09886bbb8c47df05255003eeffae Author: Igor Zinkovsky Date: Wed Oct 12 21:46:06 2011 -0700 fix mingw build commit 72b5976e8380f0baebf749c85ee102576c6a81de Author: Igor Zinkovsky Date: Wed Oct 12 13:23:09 2011 -0700 windows: support utf8 in uv_fs functions fixes #201 commit c903bc3f320db88754a2b46da775f9bb2e65710b Author: Ryan Dahl Date: Wed Oct 12 12:25:05 2011 -0700 unix: fix a few compiler warnings commit 81303a72bedc92a5dbfdc4a79df515faacdbf81f Author: Igor Zinkovsky Date: Wed Oct 12 11:37:22 2011 -0700 fix fs_readdir_file on windows commit 2216d38c295ab728194d4933d506421495b73356 Author: Igor Zinkovsky Date: Wed Oct 12 10:36:14 2011 -0700 windows: enable uv_fs_open to open directories commit 25a177a2e5760b41c3cc75ad354ef41fafbc26a5 Author: Ben Noordhuis Date: Wed Oct 12 16:42:55 2011 +0200 test: assert that readdir on file raises UV_ENOTDIR commit 197f591ebc82bc5f9b917f38bdaec410459ca298 Author: Ben Noordhuis Date: Wed Oct 12 16:39:17 2011 +0200 common: add UV_ENOTDIR error code commit 721ad8c74f5d1d7d83fd5bfcabd322812b48eb8c Author: Ben Noordhuis Date: Wed Oct 12 02:05:52 2011 +0000 sunos: implement uv_fs_futime() commit 014394df3a2c9b06058d31c0654df11b4099d6c4 Author: Ben Noordhuis Date: Wed Oct 12 01:41:17 2011 +0000 build: compile all targets with large file support commit 72fb469a43b4582f85357a7dd00f9821dc45e7be Author: Igor Zinkovsky Date: Tue Oct 11 18:20:15 2011 -0700 windows: check for fd==-1 in uv_fs functions commit e0a4e726407a2baee6aecbfa6157e4a2f8c6fc4c Author: Ben Noordhuis Date: Wed Oct 12 00:27:30 2011 +0000 sunos: look up free memory with sysconf(_SC_AVPHYS_PAGES) commit 7b01ad16850a28ea6faa10686bc31b6c4f039a6c Author: Ben Noordhuis Date: Tue Oct 11 23:42:51 2011 +0000 test: don't assert that total_mem > free_mem Assertion fails when running in a resource container, like a Solaris zone. The total reported is the container's hard limit, the free memory that of the whole system. commit 04daabd58fd23b27012a82435f82f1b5b6e1ea18 Author: Ben Noordhuis Date: Tue Oct 11 23:17:58 2011 +0200 win: unbreak build, use UV_ENOSYS commit 61343ecfbdbba75820ff29504385ad6968eb72cd Author: Ben Noordhuis Date: Tue Oct 11 23:15:41 2011 +0200 common: add UV_ENOSYS error code commit a3d495c0bccfb6764d2f4cc12677fca8db8e764d Author: Ben Noordhuis Date: Mon Oct 10 23:34:00 2011 +0200 win: make uv_process_kill(proc, 0) report process status commit acc98ca92268352e75d7f077f0a4556127181748 Author: Ben Noordhuis Date: Tue Oct 11 21:00:56 2011 +0200 test: uv_process_kill(proc, 0) should not kill the process commit a3d1f6fd6f463843dda11d4be61ed0c37b64f1cb Author: Roman Shtylman Date: Thu Sep 29 19:29:15 2011 -0400 add uv_udp_set_membership for unix multicast support - test-udp-multicast-join tests that multicast packets can be received - stub src/win/udp.c until support added commit 40b64a81cbf13fd7c998d979ce6b32796fb723d9 Author: Igor Zinkovsky Date: Tue Oct 11 11:47:05 2011 -0700 windows: don't alloc readdir buffer for empty dirs commit 4ac13090ca4be30c1df8e6e0e79c30b33a391097 Author: Igor Zinkovsky Date: Tue Oct 11 10:45:02 2011 -0700 fix mingw build commit 6936d60cdec29a2433a9d830b58e8bc65907ad70 Author: Ben Noordhuis Date: Tue Oct 11 18:27:10 2011 +0200 build: don't set CC and AR Allows user to override compiler and archiver through the CC and AR environment variables. Note that this already worked as expected with `make CC=clang`. commit 47d22acfb2eb4f046a104cc43cc6bf93a4223858 Author: Ben Noordhuis Date: Tue Oct 11 14:41:26 2011 +0200 unix: stub kqueue support functions on old platforms commit f7f518aa7e75bee4880113bb226b87a05f4838ab Author: Ben Noordhuis Date: Mon Oct 10 23:59:54 2011 +0000 sunos: fix uv_spawn() SunOS does not set POLLHUP when the read end of a pipe is closed. commit 732169565ece97799b1fc6848ac5355f3ae2975e Author: Ben Noordhuis Date: Mon Oct 10 20:47:07 2011 +0000 sunos: link against libkstat commit 5656e3c8bdf565e4ca566427671fa0c1b9c29fa4 Author: Ryan Dahl Date: Mon Oct 10 13:17:57 2011 -0700 Prepare for writable TTY to be blocking commit 41e8574920743832d6d55f97a9fca6088434a294 Author: Ben Noordhuis Date: Mon Oct 10 16:27:55 2011 +0200 unix: don't alloc memory for readdir on empty dir commit 04b356ab3799c39dc2aa321a3bdeb14080098ccf Author: Ben Noordhuis Date: Mon Oct 10 16:07:46 2011 +0200 test: fix compiler warnings commit e4a27d1c36faae5b6d72c9c570eb55cd714c5a64 Author: Ryan Dahl Date: Sun Oct 9 18:33:32 2011 -0700 Update features commit 9f6024a6fa9d254527b4b59af724257df870288b Author: Igor Zinkovsky Date: Fri Oct 7 15:04:07 2011 -0700 windows: fixes crash in pipe.c commit 81c09cb2e38e80fbe421f54f9e2cf0ea504e4b70 Author: Bert Belder Date: Fri Oct 7 14:38:14 2011 +0200 win: add error mappings for ECONNRESET commit 5ac040069eed526df7b280e3cdf39d06ca42444a Author: Fedor Indutny Date: Fri Oct 7 14:59:00 2011 +0700 better docs commit 1c72aebd7826398d6411b662b0e74541c25b1a8d Author: Ryan Dahl Date: Fri Oct 7 00:45:58 2011 -0700 unix: IPC stdio stream should be duplex commit 012fc0799f0c8080faf0b0fc309205317f4a443f Author: Igor Zinkovsky Date: Thu Oct 6 18:55:55 2011 -0700 windows: fixes #193. Ensures that uv_fs_event deals with short and long names commit 5816f2d21c899d2ed791c50627aad0b588af9e00 Author: Ben Noordhuis Date: Fri Oct 7 02:08:15 2011 +0200 unix: avoid unnecessary read() syscall commit 0364809fb5a321db1dd09aa8deb29fef2ae8bbe5 Author: Igor Zinkovsky Date: Thu Oct 6 16:18:15 2011 -0700 fix fs_utime & fs_futime tests on windows commit f60cf1d2334e77e2b42802d208482d031ef998e7 Author: Ryan Dahl Date: Thu Oct 6 14:53:52 2011 -0700 Dont build tests on 'make all' commit e3bcecdc425167a2c3b32ec7afced5bf1cabb384 Author: Ryan Dahl Date: Thu Oct 6 14:52:37 2011 -0700 unix: clean up messy code commit 60c639fd577c02ddbd503222d6c449ed32edf9ac Merge: 11944b9 34f719d Author: Ryan Dahl Date: Thu Oct 6 10:18:13 2011 -0700 Merge branch 'ipc2' commit 34f719d7a529c7e4a8c4d65a3e8fd0c0477c2309 Author: Igor Zinkovsky Date: Thu Oct 6 00:58:25 2011 -0700 windows ipc fixes commit 90e88aabf6cac0f79538a1bf45c0a081b950522e Author: Igor Zinkovsky Date: Wed Oct 5 02:35:38 2011 -0700 remove stdio.c commit 81c4043c83f07dc8c365c94d8330c96c5e313d22 Author: Igor Zinkovsky Date: Thu Sep 29 17:58:58 2011 -0700 ipc on windows commit 61fab8d1ba749e02e41350c1e1acb7af1c5e6a1c Author: Ryan Dahl Date: Tue Oct 4 14:44:16 2011 -0700 unix: return UV_UNKNOWN_HANDLE when read2 doesn't recv one unix passes ipc test on this comment. commit c920db9fd15bba9a2b652bc8b0b8364090c915b3 Author: Ryan Dahl Date: Mon Oct 3 14:49:21 2011 -0700 unix: handle passing kind of working commit bb6b629e6a1d46ed77196cfc9802bdea7d524119 Author: Ryan Dahl Date: Fri Sep 30 09:11:51 2011 -0700 make test-ipc accept the pending tcp server commit 45306f2e7fef7bd37606e3059472a88b85100c4b Author: Ryan Dahl Date: Thu Sep 29 11:49:56 2011 -0700 unix: implement uv_write2 commit e5e6efe317f39606c4d190ea32269ea125eb93a6 Author: Ryan Dahl Date: Thu Sep 29 10:43:11 2011 -0700 Add uv_write2 and uv_read2_start to header file commit dc0f17d3e3e02e3ca80a7fe127aa5d7c4c7374dc Author: Ryan Dahl Date: Thu Sep 29 10:37:59 2011 -0700 Add server to ipc_helper commit 6921d2fc075df8933748e7543402b0ae6d686fa3 Author: Ryan Dahl Date: Mon Sep 26 09:42:41 2011 -0700 Add argument to uv_pipe_init for IPC, unix impl commit 11944b948fb8c2bb0c8da27a1db57a6f68fdbcda Author: Ben Noordhuis Date: Thu Oct 6 17:01:28 2011 +0200 Update AUTHORS and .mailmap commit d1016de59735a41f778b7a17c8d522d57677becd Author: okuoku Date: Thu Oct 6 21:52:04 2011 +0900 FreeBSD: Fix FreeBSD build. commit 27262134cd7249b7466438a9a84d0e856596262f Author: Ben Noordhuis Date: Thu Oct 6 03:31:26 2011 +0200 bench: add batched TCP writes benchmark Times how long it takes to queue and write out 1,000,000 short strings. commit c7870465aa86a3d0942c1d42c5ce930c696e1830 Author: Ben Noordhuis Date: Thu Oct 6 01:00:56 2011 +0200 error reporting: return sensible messages for synthetic errors commit 0303197a5790de4a75451a0321af7127feeb10e8 Author: Erick Tryzelaar Date: Sat Oct 1 22:30:12 2011 -0700 win: unify uv_{tcp,udp}_set_socket. Fixes #205. commit 4c329060ca130528aa8fa459d8a41ee6a4e91b5a Author: Erick Tryzelaar Date: Wed Sep 28 08:28:01 2011 -0700 unix,win: Start unifying shared bind code. commit 85368e8d45dbbf8165ad64d5001e5359ba21c05b Author: Erick Tryzelaar Date: Wed Sep 28 08:22:00 2011 -0700 unix,win: Start unifying shared tcp connect code. commit e3f2631127d8d088fe40a18c8f7ff0b289c6db37 Author: Erick Tryzelaar Date: Fri Sep 30 07:59:36 2011 -0700 unix: bad connect addresses should error with EINVAL commit 65fa8873f746ee11012b2a088495fcd09e89f0e6 Author: Erick Tryzelaar Date: Wed Sep 28 08:38:08 2011 -0700 win: Fix error message. commit b590e12148511b14191746d9c90628e805a13d99 Author: Ryan Dahl Date: Tue Oct 4 16:44:36 2011 -0700 Fix darwin build commit 8e9a3384c951b09f41c94b1a5d06f684a14bf03a Author: Ben Noordhuis Date: Fri Sep 23 01:20:33 2011 +0200 unix: implement kqueue file watcher API kqueue fds are not embeddable into other pollsets (select, poll, kqueue). Hack the libev event loop to receive kqueue events with filter flags intact. commit a35591bbfce1c72cfc1108c35013adb55cabdbc1 Author: Fedor Indutny Date: Sun Oct 2 00:48:42 2011 +0700 os: implement loadavg (not working on cygwin/win) commit 33cb8775bcb32dc9a020ffda7e359b28e2470b8e Author: Fedor Indutny Date: Sat Oct 1 15:45:42 2011 +0700 os: implement memory bindings * us_get_free_memory * us_get_total_memory commit 6221904013b01e94440358502540e1f89d695045 Author: Ben Noordhuis Date: Sun Oct 2 00:14:44 2011 +0000 sunos: fix gyp build commit 914a6fa241ba5a1ebe2599f4d3d8086bfc063801 Author: Ben Noordhuis Date: Sat Oct 1 22:43:47 2011 +0000 sunos: pull in uv__set_sys_error prototype commit fe184384161ae5dd32e973529187a486358882c8 Author: Ryan Dahl Date: Fri Sep 30 13:07:14 2011 -0700 add uv_tty_reset_mode() commit 153d3c7c5729844fd28db51503c29370ccbed31f Author: Ryan Dahl Date: Fri Sep 30 11:20:47 2011 -0700 unix: allow tty raw mode to be turned off commit e53d125d5cdc20fe6ec212e30ea9712250041394 Author: Ben Noordhuis Date: Thu Sep 29 15:39:57 2011 +0200 Update AUTHORS and .mailmap commit b594dba2484296ed548e37e29157fe9572da2b72 Author: saghul Date: Thu Sep 29 01:32:10 2011 +0200 unix: fix memcpy when copying hints on uv_getaddrinfo commit c9ae7a6f9580eb4f2fe8a73ecdb9b543a10e2673 Author: Igor Zinkovsky Date: Wed Sep 28 12:59:39 2011 -0700 windows: don't strip the trailing slash from filename if it follows a device name commit 4fb120f6494677ebfab0028a2f7b0cfd7dca09c4 Author: Igor Zinkovsky Date: Wed Sep 28 12:46:37 2011 -0700 windows: fix error reporting for uv_fs_ functions commit e7a53aed48ca1d6514032344e47ee1c0b3b7d94b Author: Igor Zinkovsky Date: Wed Sep 28 11:52:08 2011 -0700 fix windows build commit 23796d208c1309270ee09ff566d00859cdf2e35b Author: Erick Tryzelaar Date: Tue Sep 27 07:44:01 2011 -0700 Fixes #76. Unify OS error reporting As a nice fringe benefit, this also shaves a word off of a windows TCP handle by replacing "uv_err_t bind_error" with "int bind_error". commit 1d7e61fafaaed60005754ff0023bfc7f9a4c614a Author: Erick Tryzelaar Date: Sun Sep 25 16:24:52 2011 -0700 unix,win: Check bind receives right socket type commit c260a3964532120edcc071c22eb4bc9d8d09031d Author: Erick Tryzelaar Date: Sun Sep 25 16:16:07 2011 -0700 unix,win: Check connect receives right socket type commit 17d4686bad82956cd6e283afa63327ace2e94b33 Author: Erick Tryzelaar Date: Sun Sep 25 16:09:55 2011 -0700 win: Actually exit if uv_udp_bind only wants IPv6. commit efa720d1baec7bcf907a04892fe0250fb381bb2c Author: Erick Tryzelaar Date: Sun Sep 25 15:01:36 2011 -0700 win: Removing uv_udp_connect6 This function isn't exposed or used internally. Nor is there a windows implementation for IPv4, or unix implementation for IPv4 or IPv6. However, sockets do support UDP connections (which just let you use send/recv instead of sendto/recvfrom), so as an alternative, we could add support for uv_udp_connect* for all OSs. commit 14cdc80a052346d6610f397d33f0944556590625 Author: Bert Belder Date: Wed Sep 28 03:41:59 2011 +0200 win tty: Fix typo commit 1d3b880e2f33eb81ba04edab85f0e30fcb17007c Author: Bert Belder Date: Wed Sep 28 03:42:05 2011 +0200 Add uv_tty_t size to benchmark-sizes commit 9b5dfd1a1ef7988b533c2a65624f814b0f451cbc Author: Igor Zinkovsky Date: Tue Sep 27 16:45:52 2011 -0700 fix mingw build commit a1f98d55b10640b98d253ac25e2b5c1776200280 Author: Igor Zinkovsky Date: Tue Sep 27 16:05:28 2011 -0700 fix c-ares on windows commit 2e4eca3b5e200171c3b446b53992aaac3f4106e7 Author: Ben Noordhuis Date: Sat Sep 24 23:11:13 2011 +0200 c-ares: upgrade to 1.7.5 commit 99748250f2ae7c64c32c6a266054a2e6ddd6d8be Author: Ben Noordhuis Date: Wed Sep 28 00:53:37 2011 +0200 unix: link to libkvm on freebsd Fixes 'undefined reference' linker errors to kvm_open(), kvm_close(), etc. commit c89a75f5a277991fac7ebf281ac977cd56692078 Author: Ben Noordhuis Date: Wed Sep 28 00:49:08 2011 +0200 unix: fix compiler warning in kqueue.c, tcp.c, udp.c Include , it contains the definition of close(). commit ceff85dcfbaebe929954c3dd7d6e8330300d6b37 Author: Ben Noordhuis Date: Wed Sep 28 00:44:55 2011 +0200 unix: fix compile error in freebsd.c Fixes joyent/node#2606. commit 9db39bb7bd8e901c54e472b49d1d2e85fb794cfd Author: Ben Noordhuis Date: Wed Sep 28 00:48:40 2011 +0200 unix: don't use C99 comments in C89 source commit 1cca230d76f1990f310bb005121b46a7f8b73534 Merge: 517bfc8 edbabe6 Author: Ben Noordhuis Date: Mon Jan 23 13:27:47 2012 +0100 Merge remote-tracking branch 'origin/v0.6' commit 517bfc89029f7bc8baeda21727e4df10c198bb00 Merge: 454e021 32b291d Author: Ben Noordhuis Date: Thu Jan 19 16:22:21 2012 +0100 Merge branch 'v0.6' commit 454e0212b0615037a4becd3f0eb944cce025ed62 Author: Ben Noordhuis Date: Sat Jan 14 01:58:52 2012 +0100 unix: clean up udp read/write watchers commit 28b0867f0312e3ccdc45d7fde0218d065ed40c65 Author: Ben Noordhuis Date: Wed Jan 18 20:03:42 2012 +0100 unix: clean up udp shutdown sequence commit ee10cb77bd28383b1865557b76ef44cf0c37440b Author: Ben Noordhuis Date: Wed Jan 18 19:34:22 2012 +0100 unix: use container_of() instead of w->data commit dd7e6f01632edbf4bc4ad419cc949112ff915e7e Author: Ben Noordhuis Date: Wed Jan 18 18:59:05 2012 +0100 test: don't use malloc/free in test-timer commit 6ede034a7e294ed31e04f1ba72e5ca8fd8c1ad41 Author: Ben Noordhuis Date: Wed Jan 18 15:56:34 2012 +0100 test: #include missing commit 1161d31aea76e6de2f8dac3021fb355d92944920 Author: Ben Noordhuis Date: Wed Jan 18 15:53:38 2012 +0100 test: move container_of() macro into task.h commit fbbc085448629a7e1d70c0095bfac0baa45df49c Author: Ben Noordhuis Date: Wed Jan 18 15:43:21 2012 +0100 Rename COUNTOF() to ARRAY_SIZE(). Consistent with Node, it has an ARRAY_SIZE() macro but not COUNTOF(). commit dee86dd5b06897ae3f5ae0107840f3fd2d3916ed Author: Ben Noordhuis Date: Wed Jan 18 15:06:15 2012 +0100 unix: don't retry close() on EINTR Linux 2.6 always closes the file descriptor, even on EINTR. Retrying the close() call isn't merely useless, it's actively harmful - the file descriptor may have been acquired by another thread. commit 52511b9ddca86afbb034b3db85ebcf4185c6e1eb Author: Igor Zinkovsky Date: Wed Jan 11 18:46:27 2012 -0800 windows: implement uv_loop_new+uv_loop_delete commit f5bd21f181a8acc4cdfe015ca818dbb6b7fe6831 Author: Igor Zinkovsky Date: Mon Jan 16 13:52:45 2012 -0800 conform to ANSI C commit 71f6c0edb85b8de59fd8b2e6f2822ee430bc6d5b Merge: e7758e1 0e6e4ab Author: Ben Noordhuis Date: Mon Jan 16 18:07:49 2012 +0100 Merge remote-tracking branch 'origin/v0.6' Conflicts: src/win/util.c commit e7758e126f3e69dca0502228c0a393c5e82a185b Author: Fedor Indutny Date: Sun Jan 15 16:40:34 2012 +0600 unix: remove eio_set_max_poll_reqs * added test commit 26512731e3e5ff5ce039bf768080b590a270974a Author: Igor Zinkovsky Date: Fri Jan 13 17:24:30 2012 -0800 remove uv_thread_self commit 94a5c7b00271048e584a21eab8ca711132034e26 Author: Igor Zinkovsky Date: Wed Jan 11 18:11:30 2012 -0800 fix warnings in windows build commit e8494dddc0569d573913faf08ff7276ccb2e9f5d Author: Daisuke Murase Date: Wed Jan 11 17:06:41 2012 +0900 unix: use EVRUN_ONCE in uv_run_once() EVRUN_NOWAIT means "poll and don't block". Use EVRUN_ONCE instead, "wait for single event". commit 51ea46de45db94bdb0e6af24ee8e3102e292598b Merge: 4ad33e9 803f5a0 Author: Ryan Dahl Date: Mon Jan 9 11:31:13 2012 -0800 Merge remote branch 'origin/v0.6' commit 4ad33e974872cb12a2aa410cdd40cb0d9163cbbc Author: Ryan Dahl Date: Mon Jan 9 11:22:46 2012 -0800 Revert "Add uv_pipe_pair for communication between threads" Not needed. We took a different approach for isolates. This reverts commit 5cc6090fdf738c7ae6677627f9f151c9bc16b43f. commit 5cc6090fdf738c7ae6677627f9f151c9bc16b43f Author: Ryan Dahl Date: Thu Dec 29 17:18:34 2011 -0800 Add uv_pipe_pair for communication between threads This is only the Unix implementation and test. commit 3dd4ecb493ea6ea81eec066a20f3235b67826cfc Author: Ryan Dahl Date: Tue Dec 27 19:04:09 2011 -0800 unix: expose uv__make_socketpair, uv__make_pipe in unix/internal.h commit 0db56ea41a89c23cb5cacbfaa540b118c3bb67a3 Author: Ben Noordhuis Date: Thu Dec 29 01:40:27 2011 +0100 windows: implement uv_thread_self() commit 85f6b7952bfbcf4ac0b7c7a13ef07bfe7d4c94a5 Author: Ben Noordhuis Date: Wed Dec 28 14:42:46 2011 +0100 Fix Windows build, uv_eio_channel is Unix only. commit d6a06b86895017d5aaeffaa0913948d9b0b70de7 Author: Ben Noordhuis Date: Thu Dec 22 03:42:54 2011 +0100 test: eio callbacks should run in their owning threads commit 271aa1806cf5d694ec27e43c03ec6e61e5bc1959 Author: Ben Noordhuis Date: Thu Dec 22 03:38:29 2011 +0100 unix: eio_init() is not thread-safe, run atomically commit ec8c5008aae72291a614ea1b48c1727be04bff93 Author: Ben Noordhuis Date: Tue Dec 20 20:37:32 2011 +0100 Update AUTHORS and .mailmap commit abf9654a55fe7c1c5b729626914c437c99d1a668 Author: Paddy Byers Date: Tue Dec 20 20:20:58 2011 +0100 unix: create separate eio result queue per loop Makes the eio "done" callback run in the thread that submitted it. Makes it safe to use libeio from multiple event loops. commit 10de090b9e8796785597f920af526d0012319559 Author: Ben Noordhuis Date: Tue Dec 20 17:26:09 2011 +0100 unix: centralize loop init logic Also fixes a bug where loops other than the main loop didn't pick the kqueue backend, which broke the fs event watcher on Darwin and the BSDs. commit 6a9cb902ae25efa6f853dc10b20cd657b8a1f809 Author: Ben Noordhuis Date: Wed Dec 7 03:08:58 2011 +0100 Add ngx_queue_foreach() macro. commit 69ce0145f6e85755f5e306d5009c8bc272a5abea Author: Ben Noordhuis Date: Tue Dec 20 16:55:53 2011 +0100 Wrap platform "thread-safe run once" APIs. commit a993329c0299dd3af17518d05f36cb0efda639e4 Author: Ryan Dahl Date: Tue Dec 20 11:34:18 2011 -0800 add uv_thread_self commit 3cbe7c3f7952aa249450438b21cf4f346bb88e22 Author: Daisuke Murase Date: Thu Nov 10 17:59:26 2011 +0900 Fixes for iOS replace AbsoluteToNanoseconds to alternate implementation in uv_hrtime when target OS is iOS which does not have CoreServices.framework Fixes #243 commit cb70db1240b2c05e1d65204b751081ff174d29e6 Author: Ben Noordhuis Date: Fri Dec 16 20:39:35 2011 +0100 linux: fix compiler warnings commit f9edaca5bd6cbdfe4f42a7b529a795334d4229db Merge: 8e50b60 d808cf9 Author: Ben Noordhuis Date: Fri Dec 16 20:14:16 2011 +0100 Merge branch 'v0.6' Conflicts: src/unix/linux.c commit 8e50b6043da7b3221f51b3158033255c9a210d08 Author: okuoku Date: Fri Dec 16 04:03:57 2011 +0900 freebsd: Fix build Fixes #280 commit 9775121581be23f471df6af31d33bbbc3fb169d6 Author: okuoku Date: Fri Dec 16 02:39:40 2011 +0900 win: Fix MinGW32 builds Fixes #279. commit 7aacfad447c4e70aef1bff65cb370eeefb2ffd3a Author: Igor Zinkovsky Date: Wed Dec 14 22:56:53 2011 -0800 windows: support for getting multiple addresses for a network interface commit 3d189de69964d10f8c1f3fa7cdf6f64cb36b2122 Author: Igor Zinkovsky Date: Tue Dec 13 01:29:27 2011 -0800 platform api commit 12cc4f7d3d98cd2aa88cf84a8dc7c0e07dda2cb3 Author: Ben Noordhuis Date: Wed Dec 14 14:32:13 2011 +0100 Update AUTHORS and .mailmap commit e53cecb8c02ac03a67f284e248765b84f840c7f2 Author: mattn Date: Tue Dec 13 09:58:53 2011 +0900 add uv_run_once() commit 4c6008f488dfbde6650bda085ee57031f6f5a786 Merge: bfd51ca ba52023 Author: Ben Noordhuis Date: Mon Dec 12 18:04:17 2011 +0100 Merge branch 'v0.6' Conflicts: test/test-list.h commit bfd51ca022a21ac78beedd2795a36a21af0a9223 Merge: 0d8cb08 9fe9e23 Author: Ben Noordhuis Date: Mon Dec 12 02:15:45 2011 +0100 Merge branch 'v0.6' commit 0d8cb08f83038638c320803a8e4c51eb0ad93be9 Merge: f5c2a4a b89c31b Author: Ben Noordhuis Date: Thu Dec 8 16:31:52 2011 +0100 Merge branch 'v0.6' commit f5c2a4a1ae28ab9136520a1f8f307653ca891dd9 Merge: eb6d754 60630da Author: Ben Noordhuis Date: Fri Dec 2 18:15:04 2011 +0100 Merge branch 'v0.6' Conflicts: src/unix/core.c src/win/winapi.h commit eb6d754a0620fc8035d2a0cac39cee007e023a50 Author: Bert Belder Date: Thu Dec 1 19:38:58 2011 +0100 Win: utf-8 decoder bug when compiling with gcc commit ee49c7a2b67e7d7b0245023408c7d2448287edb5 Author: Bert Belder Date: Thu Dec 1 15:47:49 2011 +0100 Fix MinGW and MinGW-w64 builds Closes GH-222 and GH-267. Thanks Yuki Okumura and Yasuhiro Matsumoto for providing fixes. commit 7c50415db69dc3a3dbe0ec3468159d1c1079e5a0 Author: Yuki Okumura Date: Fri Oct 21 00:42:40 2011 +0900 Win: lower case tlhelp32.h to support cross compilation commit b471b33da88da0ca0b913573370cc6919ec134e7 Author: Bert Belder Date: Thu Dec 1 15:23:00 2011 +0100 Bump required windows headers to Vista This does not mean that XP/2k3 is no longer supported - we just need the headers so we can use newer APIs on later windows versions. commit 35fa2a6a514bfe668143562ca5bea23c0a193e21 Merge: ef811b1 01f64f6 Author: Bert Belder Date: Fri Nov 25 12:46:17 2011 +0100 Merge branch 'v0.6' commit ef811b1a4f92962fa2be3221f18eadd0c4706f6e Merge: 59f9a73 96c2303 Author: Ben Noordhuis Date: Wed Nov 23 19:06:08 2011 +0100 Merge branch 'v0.6' commit 59f9a736b1629c03ff45c68f39c980414d194434 Author: seebees Date: Wed Nov 23 07:35:45 2011 -0800 test: process should not wait for stdio before terminating commit b52b8c7128ba7c99ae7774f9815384aabaa07bed Author: Ben Noordhuis Date: Wed Nov 23 17:24:36 2011 +0100 util: add uv_strlcpy() and uv_strlcat() functions commit 0834e73621a7e9774ff227af3e77600ce141f181 Merge: 45180fe 92c9e95 Author: Ben Noordhuis Date: Tue Nov 22 00:06:58 2011 +0100 Merge branch 'v0.6' commit 45180fea27183dbf58b9e8fe245db67c35c7dc41 Author: Ben Noordhuis Date: Mon Nov 21 21:17:16 2011 +0100 bench: add thread creation benchmark commit 8e4ed88bbe08c4193cd9d869b1a7359dd71aef33 Author: Ben Noordhuis Date: Mon Nov 21 16:12:36 2011 +0100 Wrap platform thread APIs. commit 5728bd4549c18060a2c2fb7cecf8c2a631343ddc Author: Ben Noordhuis Date: Mon Nov 21 18:01:01 2011 +0000 test: touching a file should generate only one fs event commit 57ae9cc4a8ab2312af72ce706b0dc3207886f3ec Author: Shimon Doodkin Date: Sun Nov 20 05:32:21 2011 +0200 cygwin: fix undefined _SC_PAGESIZE unistd.h was not included, when tried to build node 0.5.9 had an error of: _SC_PAGESIZE undefined commit e4680ccc62a011d307db79fe0a0eecc8c21c475b Author: Ben Noordhuis Date: Fri Nov 18 12:53:02 2011 +0100 windows: make SRWLock API usage more explicit commit 1fc1f28093cc584205b456d1f1210df63e1aaa3b Author: Ben Noordhuis Date: Mon Nov 14 21:04:53 2011 +0100 Wrap platform mutex and rwlock APIs. Read/write locks are emulated with critical sections on Windows XP and Vista because those platforms don't have a (complete) native read/write lock API. commit 1e0aab06c92838b427ecf41ead62d1e5fcc8e4c5 Author: Ben Noordhuis Date: Tue Sep 27 15:04:45 2011 +0200 unix: properly disarm kqueue fs watcher Fixes "Assertion failed: (revents == EV_LIBUV_KQUEUE_HACK), function uv__fs_event, file ../src/unix/kqueue.c, line 58." commit b0b54bf88dca19cdc0a6cffaba93c2073dbdb0f4 Author: Igor Zinkovsky Date: Thu Nov 17 15:18:32 2011 -0800 windows: return UV_FILE for non-console FILE_TYPE_CHAR commit d5b26154f7a99b3a1725b5c68276b0d6750cdc98 Author: Ben Noordhuis Date: Thu Nov 17 18:00:51 2011 +0100 linux: improve kernel feature detection Do not check for minimum kernel and glibc versions, just check that the kernel headers export the syscall number and invoke the syscall directly. Effectively bypasses glibc. commit 10c5293cae2ae11cbf05ed5bd316ad4ae4518233 Author: Ryan Dahl Date: Tue Sep 27 13:24:51 2011 -0700 Update list of supported features commit 2c0fca9a4137ffac080654bf64f528ee2b4e6bbc Author: Bert Belder Date: Tue Sep 27 19:11:42 2011 +0200 win: Fix crash when calling uv_close from shutdown callback commit bdac72cc93c3b73db0f2e9474e61ce64992bf522 Author: Bert Belder Date: Tue Sep 27 19:07:54 2011 +0200 win tty: Implement uv_close and uv_shutdown commit 554cb78eebcd65f75198da547bc68cd4c072926b Author: Bert Belder Date: Tue Sep 27 19:06:59 2011 +0200 win tty: Use NULL consistently, don't mix with INVALID_HANDLE_VALUE commit f5f005d51dc0fd737e9b142827ae7dedf2a262ee Author: Bert Belder Date: Tue Sep 27 16:10:06 2011 +0200 tty-win: fix absolute cursor positioning commit b0a9d601c8b5e072ad8929f6d815292f9c46d6a6 Author: Bert Belder Date: Tue Sep 27 12:29:32 2011 +0200 win: tty fixes commit 8f563e296300454dfb91d2686f90b5fb96a0c7b6 Author: Bert Belder Date: Tue Sep 27 12:39:27 2011 +0200 Revert c-ares upgrade and includes fix It broke the windows build. This reverts commit 083c97e28bd67f3c87ed6cb7636e423c8d18bcb6 and commit b288afdf14a2da3bbd6a2510c043f816ec7c6a42. commit 2ebb2272c316ea067c71e694e77b6fa60c53099d Author: Ryan Dahl Date: Mon Sep 26 22:51:08 2011 -0700 Add tcp reference count tests commit 3e5aa06c49abdd56d9f2dc89381e18ffc713a93c Author: Ryan Dahl Date: Mon Sep 26 22:01:21 2011 -0700 Add two timer ref count tests commit 2c0179197f86d195877e217ac868d43776931312 Author: Ryan Dahl Date: Mon Sep 26 21:06:30 2011 -0700 Make libev verify itself in debug build commit 9673abeab5e44d064724d43bf97eb0c0eedfe3a1 Author: Ben Noordhuis Date: Tue Sep 27 01:00:02 2011 +0200 unix: fix pointer ownership bug libuv realloc'd a pointer that belonged to and was later freed by libev. commit f6a365ed91a1ed5cc06a811709aeebc65a3a16dd Author: Igor Zinkovsky Date: Mon Sep 26 14:38:13 2011 -0700 fix tcp_write_error for windows commit b288afdf14a2da3bbd6a2510c043f816ec7c6a42 Author: Ben Noordhuis Date: Sun Sep 25 00:11:50 2011 +0200 common: fix includes Don't rely on c-ares to pull in the headers for inet_addr, net_pton and inet_ntop. c-ares 1.7.4 did but 1.7.5 does not. commit 083c97e28bd67f3c87ed6cb7636e423c8d18bcb6 Author: Ben Noordhuis Date: Sat Sep 24 23:11:13 2011 +0200 c-ares: upgrade to 1.7.5 commit 622eb99113b28222a8ca149447350d0762f540ef Author: Bert Belder Date: Mon Sep 26 19:31:32 2011 +0200 win: implement tty loose end: line-buffered input reads ascii, not unicode commit 77bc00e9ad967c4dacb9b6c618815a21c76e0ba6 Author: Bert Belder Date: Sun Sep 25 04:05:04 2011 +0200 win: uv_pipe_queue_read should set read_pending flag commit 985f1a1b2d95122ff4ccd288c2cf83b4d59198c5 Author: Bert Belder Date: Sun Sep 25 04:05:24 2011 +0200 cleanup commit d31a57dc78d59bdc820f0dc4c03b9c17f8af9245 Author: Ben Noordhuis Date: Sun Sep 25 02:53:27 2011 +0200 unix: fix NULL pointer dereference commit 01441ab02f35bf2ca54dce440ad9440602f46be4 Author: Ben Noordhuis Date: Sun Sep 25 02:49:21 2011 +0200 unix: fix close() of potentially uninitialized fd commit 8f617b93bcb3e4b54fd4fa33883b14bad014dfc0 Author: Ben Noordhuis Date: Sat Sep 24 05:19:59 2011 +0200 unix: darwin < 10.6 does not have fdatasync, use fsync commit 3ca382be741ec6ce6a001f0db04d6375af8cd642 Author: Ryan Dahl Date: Fri Sep 23 11:29:31 2011 -0700 One more README cleanup' commit f20297fffadff3918dd6896f0d525092ee6815c6 Author: Ryan Dahl Date: Fri Sep 23 11:03:31 2011 -0700 Add a list of features to readme commit c22689655ddd5605e009bef7a794521e9c69dc1f Author: Ryan Dahl Date: Fri Sep 23 10:21:09 2011 -0700 Fix markdown headers in readme commit ee96a4c57981df030bab7b1b40a9404dfa101a1d Author: Ryan Dahl Date: Fri Sep 23 10:18:46 2011 -0700 Add link to docs commit 03d0c57ea216abd611286ff1e58d4e344a459f76 Author: Ryan Dahl Date: Fri Sep 23 10:01:45 2011 -0700 Remove uv_is_tty. Use uv_guess_handle instead. commit 7e8645d10146c0ef0035f88f13b185e6022896e5 Author: Erick Tryzelaar Date: Thu Sep 22 14:28:44 2011 -0700 unix,win: Make uv_freeaddrinfo to clean up addrinfo Fixes #196 commit 7ce34f2adaa8f734adfb64f509186ba5af5da07c Author: Fedor Indutny Date: Fri Sep 23 16:34:10 2011 +0700 added missing headers file commit 03652596cfe150be1da7d988fdcc3e56106d318d Author: Ryan Dahl Date: Thu Sep 22 19:34:27 2011 -0700 unix: add uv_guess_handle and uv_tty_get_winsize commit f9ad0a7bf65c229e50fea90e58757d14684ea9b3 Author: Igor Zinkovsky Date: Thu Sep 22 15:04:54 2011 -0700 windows: fire UV_CHANGE in case of overflow commit 3368d6c1a222d81c1cf45800e1537cd048fc9cdd Author: Ben Noordhuis Date: Thu Sep 22 23:41:25 2011 +0200 unix: stub file watcher implementation The file watcher API has not been implemented on all Unices yet. Provide stubs on those platforms so libuv at least compiles. commit 019e6edf4754a4fb1f3d3d89d74c31706dc6b525 Author: Igor Zinkovsky Date: Thu Sep 22 10:33:35 2011 -0700 windows: NextEntryOffset is relative, not absolute commit d9fb84c02cc56930013a0467b2eb807b687f9ee5 Author: Marek Jelen Date: Thu Sep 22 08:54:02 2011 +0200 build: absorb CFLAGS from environment commit bee7112de02581b44240ea4d4e164e2e71ba86da Author: Ben Noordhuis Date: Wed Aug 17 17:51:30 2011 +0200 unix: move container_of and SAVE_ERRNO to internal.h commit 2a1c32a60c8340c3c7dcca7c3033b715427898bd Author: Ben Noordhuis Date: Tue Sep 20 06:45:51 2011 +0200 linux: implement file watcher API commit 1e0757ffda47c625b0f7feeeb91c399864787f9e Author: Igor Zinkovsky Date: Fri Sep 16 12:04:36 2011 -0700 windows: file watcher commit 12d3680cd4b3dc74ad07ba85c9bdeda0441fc2cc Author: Ben Noordhuis Date: Wed Sep 21 19:26:25 2011 +0200 unix: fix warning: implicit declaration of function ‘isatty’ commit 2dae0c9e49e16672ce6abce30d3751736aa33f02 Author: Ben Noordhuis Date: Wed Aug 17 07:02:00 2011 +0200 test: remove futimes sub-second precision checks, unreliable on freebsd commit 236b96a8cfbb8c41c36e40248b8fa01a0bb2b269 Author: Ben Noordhuis Date: Wed Aug 17 07:01:29 2011 +0200 unix: define HAVE_FUTIMES on freebsd commit c455f378030a254ec65714e8bf02d1c0d01d8d6e Author: Ben Noordhuis Date: Wed Aug 17 06:40:39 2011 +0200 unix: freebsd doesn't have fdatasync, do a full fsync instead commit 78f4acacf1a1455e22fb5acb3440dd94a703de5c Author: Ben Noordhuis Date: Wed Aug 17 06:40:17 2011 +0200 build: fix freebsd gyp build commit 9f8bc7b4b8c32b94e4147c25fc972fc578bdc2a7 Author: Ben Noordhuis Date: Wed Sep 21 00:26:29 2011 +0200 build: add test-tty to gyp file list, unbreaks build commit c03d42607e3c9b0deb1042309afb6b0145135e1e Author: Ryan Dahl Date: Tue Sep 20 14:59:26 2011 -0700 More tty on unix fixes commit 2ef8f359ee93f3e1c809d98780cafb213296886f Author: Ryan Dahl Date: Tue Sep 20 13:14:16 2011 -0700 tty fixes for unix commit c1374ba58745f9a2732ac83d29b027db3ae18165 Author: Ryan Dahl Date: Thu Sep 15 15:16:53 2011 -0700 Add uv_is_tty() commit 6beeb5fc076e3568d373d3fefeca766ece5c7312 Author: Ben Noordhuis Date: Tue Sep 20 06:30:14 2011 +0200 Update AUTHORS and .mailmap commit ee115bfd8d5f22194736cbc5c172ee1c1de9c4e9 Author: Igor Zinkovsky Date: Mon Sep 19 16:03:38 2011 -0700 windows: fail uv_spawn() if options.file is NULL commit 37e8bf2556ff088ee6886299eac4a6f0883b354a Author: Ben Noordhuis Date: Mon Sep 19 17:22:38 2011 +0200 unix: fix dangling pointer free() bug commit 70e1032094141a420cfb1a918ad4fdf42d8be7a3 Author: Erick Tryzelaar Date: Sat Sep 17 08:38:29 2011 -0700 unix: Fix uv_getaddrinfo from deleting invalid data If the uv_getaddrinfo_t handle is owned by its data pointer, deleting the data in the callback could cause uv_getaddrinfo_done to call freeaddrinfo on an invalid pointer. commit 8f6f324746e6343b4fbd8a37b8a84c2d9c0f4d50 Author: Ben Noordhuis Date: Mon Sep 19 16:57:37 2011 +0200 build: use -m32 only when host_arch != target_arch Unbreaks the gyp build on x86_64 linux systems. commit 2f18cf5ecf59ba8feafb22bccdaf5e7057c1b9c3 Author: Ryan Dahl Date: Sun Sep 18 18:34:40 2011 -0700 Fix gyp build commit 75a088ebf1c1e5bb71111395d138d04b04624484 Author: Ben Noordhuis Date: Fri Sep 16 02:21:09 2011 +0200 unix: remove failed write requests from stream->write_queue_size commit 3c0684e8324f3fad48fc1bb7f6dd3e46ce1b272f Author: Ben Noordhuis Date: Fri Sep 16 02:05:50 2011 +0200 unix: pass error to write callback in stream cleanup commit 4487531b06cc1b3060947b70cce7c25b11489b7d Author: Ben Noordhuis Date: Fri Sep 16 04:36:32 2011 +0200 test: check that write_queue_size updates after write error commit d0a46a55513e8af7d855977654be17c2216f01ac Author: Ryan Dahl Date: Fri Sep 16 16:03:48 2011 -0700 HAVE_FUTIMES on osx commit f00a5e650368c28026bb3e97fdb05ab8fb686761 Author: Ryan Dahl Date: Fri Sep 16 15:36:35 2011 -0700 ignore SIGPIPE in tests commit 2640aae125e1dc30d81f26a74525cca7806fe76e Author: Ryan Dahl Date: Thu Sep 15 15:17:34 2011 -0700 unix: Reset flags for stdio fds after fork commit 533418d4dab34e4df90a7c3d500ef92ceedd4db3 Author: Erick Tryzelaar Date: Fri Sep 9 21:44:03 2011 -0700 test and bench: assert return values of *_init functions in tests commit 905fe7134153164bc7ae633250ee7511edb81e26 Author: Erick Tryzelaar Date: Sat Sep 10 08:51:48 2011 -0700 unix: fix a compiler warning commit 970018156f82dce7485536d059de3e36f32e3100 Author: Erick Tryzelaar Date: Tue Sep 13 21:50:32 2011 -0700 test: fix compiling with gcc-4.5 commit 58dd32750e4b744e5e195c2a602f00820ed56bf9 Author: Igor Zinkovsky Date: Wed Sep 14 14:04:41 2011 -0700 windows: ERROR_PATH_NOT_FOUND -> UV_ENOENT mapping commit 4197fc76b1e889c857d9f84349946cb1e73c49c9 Author: Igor Zinkovsky Date: Wed Sep 14 13:33:55 2011 -0700 windows: make file handles non-inheritable by default to match node behavior commit 2931bdcf54556736260cc886a0908cc7ac292d5b Author: Igor Zinkovsky Date: Tue Sep 13 17:37:26 2011 -0700 windows: strip '\??\' from readlink path buffer. commit 65c8a727a3bad4063adb2a462ce9e830acdcbd6d Author: Igor Zinkovsky Date: Wed Sep 14 10:43:45 2011 -0700 uv_fs_ functions to return result in sync mode commit 76216d8057a8f612921be9bdde262c2e074b8a6c Author: Ben Noordhuis Date: Wed Sep 14 17:58:35 2011 +0200 unix: handle readdir errors in uv__fs_after() commit 337ff1652642a84e36118e9162c163f35c95c1ce Author: Ben Noordhuis Date: Wed Sep 14 17:50:39 2011 +0200 unix: revert "eio: fix memory leak in eio__scandir()" This reverts commit b450d8771967d0848595f8e966972ada257d3ffb. It turns out that libeio doesn't actually leak memory but it does do an unnecessary (and confusing!) allocation that is not free'd until after the user callback returns. commit 4b9b692bb7a8571bf49b409d3505bab1f5cf0635 Author: Ben Noordhuis Date: Wed Sep 14 04:29:01 2011 +0200 unix: fix off-by-one error in comparison Only 3 of the 4 buffer list entries were being used. commit 3c96410902cb6180b2e3bad97b009242bc930b26 Author: Ben Noordhuis Date: Fri Sep 9 23:53:09 2011 +0200 unix: bring back uv__stream_destroy() This is the revised version of reverted commit 431195c. commit bca49960fbde41517a833bc3f6bca1971c9746c0 Author: Ben Noordhuis Date: Wed Sep 14 02:02:33 2011 +0200 unix: handle stream write errors properly 1. Ensure that failed writes don't leave the write queue in an inconsistent state. Before, write requests were handed back to the user but were not removed from the write queue. The cause of at least one use-after-free bug. 2. Pass the error to the callback on the next iteration of the event loop instead of returning it immediately. commit 066dc6bcc86f8147ef40e15c4ce22e2abe33e661 Author: Ben Noordhuis Date: Wed Sep 14 01:42:44 2011 +0200 unix: fix argument check / write request init order commit 21936ebf24e5429fa134e9ecf8397c550af9fc2d Author: Ben Noordhuis Date: Wed Sep 14 01:40:55 2011 +0200 unix: remove unnecessary variable commit d70c760338eb6f2bbf5e57e4692c68a467690d8a Author: Ben Noordhuis Date: Wed Sep 14 01:38:51 2011 +0200 unix: fix write queue double init commit 3c00d87b4239a6b8358e2085f806170c3eca10cf Author: isaacs Date: Mon Sep 12 16:31:18 2011 -0700 Add EEXIST handling Additionally, map ERROR_ALREADY_EXISTS to EEXIST on Windows. I'm a bit unsure about this mapping. Could a windows person confirm? commit e7eeacb4ae69d4dee4af7787138cf476fc010b5d Author: Ryan Dahl Date: Mon Sep 12 14:52:59 2011 -0700 unix: implement uv_tty_set_mode commit 4484d61fe1dc77669f94c7b0c3d2130adfdda87d Author: Ryan Dahl Date: Mon Sep 12 14:24:50 2011 -0700 Add interfaces for uv_pipe_open, uv_tty_init, uv_tty_set_mode Nothing works - no tests. This is just to coordinate efforts between Bert and I. commit 9bd8bd794575746538a4d5212d1a9d6ed880094c Author: Ben Noordhuis Date: Thu Sep 1 01:14:33 2011 +0000 gyp: add sunos config section commit 2f2223f2b2f6ed3a595054e5a75f3abbd8645221 Author: Ben Noordhuis Date: Thu Sep 1 01:37:36 2011 +0000 sunos: fix compiler errors, sun is a #define commit 828b6eb11dca2dd3f7a556d230928a2990ebe9a5 Author: Ryan Dahl Date: Mon Sep 12 11:32:31 2011 -0700 unix: remove uv_init commit bb15c0e268906c01dd120449eb46f4821cf3e30b Author: Bert Belder Date: Sun Sep 11 22:54:16 2011 +0200 win: make uv_hrtime() thread-safe commit 0dc564a2aac8b9aa9b7ff903f0a9226fb837279e Author: Bert Belder Date: Thu Sep 8 17:59:50 2011 +0200 Remove uv_init calls from tests and benchmarks commit f790b689a7603983f73683528176efe33b192332 Author: Bert Belder Date: Thu Sep 8 17:58:31 2011 +0200 Remove uv_init from uv.h and windows backend commit b450d8771967d0848595f8e966972ada257d3ffb Author: Ben Noordhuis Date: Mon Sep 12 18:01:43 2011 +0200 eio: fix memory leak in eio__scandir() commit af936a97dfaffbd316580f5bf54ce78ae45e3c37 Author: Erick Tryzelaar Date: Thu Aug 25 11:02:18 2011 -0700 Fix a typo that broke windows compilation. commit efa1b54076349653267640d5e0a5fe27a9cd852d Author: Erick Tryzelaar Date: Thu Aug 25 11:02:18 2011 -0700 Subclass uv_getaddrinfo_t from uv_req_t. This patch also fixes #155. Since we no longer memset clear the uv_getaddrinfo_t, the user can now set the `uv_getaddrinfo_t->data` field without problems. commit eb987bcc5c8743876f86c23d3658559dce2fc33a Author: Ben Noordhuis Date: Sat Sep 10 01:40:47 2011 +0200 unix: deduplicate stream init logic Move shared init logic into uv__stream_init(). commit 52eca75152d8d377d3ab2947e4afb2d1b743e7f8 Author: Ben Noordhuis Date: Sat Sep 10 01:39:46 2011 +0200 unix: uv_pipe_t should not depend on UV_TCP_PRIVATE_FIELDS commit bd6066cb349a9b3a1b0d87b146ddaee06db31d10 Author: Ben Noordhuis Date: Sat Sep 10 00:14:26 2011 +0200 unix: fix readdir cleanup assertion commit c4317f639a4e9f8760fb7fdb28b3e203b6904f27 Author: Bert Belder Date: Fri Sep 9 23:44:03 2011 +0200 Update uv.gyp after 98b9f58 got reverted commit ca5346f9ce24305fa427d461712971ab009169e3 Author: Ben Noordhuis Date: Fri Sep 9 23:40:10 2011 +0200 unix: revert 98b9f58 and 431195c for now, corrupts memory commit e95a29ee183b1edaa54adf0e4ca2a5bfe72dac42 Author: Bert Belder Date: Fri Sep 9 05:23:07 2011 +0200 Add mapping for ECONNABORTED commit 12e689dcf89050f1d51f2e1f1ab9c712238b374e Author: Bert Belder Date: Fri Sep 9 04:33:07 2011 +0200 win: the ddk got the NTSTATUS_FROM_WIN32 wrong commit cfa1423f96e42bc3c375ff11afc9dce5aeb8699d Author: Igor Zinkovsky Date: Thu Sep 8 18:23:19 2011 -0700 fix fs_file_noent on windows commit 0d373eb0b1db884bacfeffef7502f3f40e3dc6b7 Author: Bert Belder Date: Fri Sep 9 01:25:52 2011 +0200 win: fix bug in fs__readlink commit 2d1c672e2d7fa4455387d932eab352d9abfe380b Author: Bert Belder Date: Thu Sep 8 23:49:46 2011 +0200 More MinGW fixes commit 5b567b29a86799663939fa03867a1c5bd6783c1b Author: Erick Tryzelaar Date: Fri Sep 2 18:30:55 2011 -0700 Fix src/win/getaddrinfo.c for mingw-w64. commit 1a43429774a657ca5ad4e5879c4d60a47841b676 Author: Erick Tryzelaar Date: Tue Sep 6 21:18:19 2011 -0700 Fix test-fs.c for darwin. commit fe6157bdd4734e9b459303e55ee4625a26708027 Author: Erick Tryzelaar Date: Wed Sep 7 06:32:30 2011 -0700 Stop "./gyp_uv --check" from complaining. commit f4e2d5559fabbf60b801d7583a4d3384a8c63fa7 Author: Erick Tryzelaar Date: Mon Aug 29 14:24:01 2011 -0700 Fix test-get-currentexe on darwin. Darwin uses _NSGetExecutablePath to determine the path of an executable, but that can return an absolute path. This patch tweaks the executable path to strip off a potential "./" prefix from argv[0], which fixes the test. commit 70bc6c0ca8591bb3bb22d6c729193c3c4964092b Author: Igor Zinkovsky Date: Thu Sep 8 13:23:49 2011 -0700 add test-tcp-close.c to uv.gyp commit 06d69a82ee185d4e81bf88f50a440f64a4467b5b Author: Bert Belder Date: Thu Sep 8 19:59:24 2011 +0200 Make MinGW happy again commit 431195c94483d9de61bdd0825a60659480a5f023 Author: Ben Noordhuis Date: Thu Sep 8 19:10:00 2011 +0200 unix: run callbacks of pending writes when handle is closed commit 98b9f582f4c9e0445131262eb078d56e2904abd3 Author: Ben Noordhuis Date: Thu Sep 8 01:01:46 2011 +0200 test: make sure that write callbacks run when handle is closed commit c2741514bc72abc22240adbbc7d0a2e7264f7815 Author: Bert Belder Date: Thu Sep 8 17:56:47 2011 +0200 win: fix spawn() bug commit 8fd1d710490a9c997957f70de523585ffe81c24f Author: Ben Noordhuis Date: Thu Sep 8 13:26:08 2011 +0200 Update AUTHORS commit 4320874fcf202a85408e64b451a45b8b79ac91a2 Author: Matthew Sporleder Date: Wed Sep 7 22:09:26 2011 -0400 unix: netbsd support commit 90ea007f61fee7935f73db8b67b86001f0210a8c Author: Ben Noordhuis Date: Thu Sep 8 00:14:04 2011 +0200 test: fix compiler warnings for test-spawn.c commit 5641503ae7708f0da72d8ac883d60734335b8033 Author: Ben Noordhuis Date: Thu Sep 8 00:11:16 2011 +0200 test: fix compiler warnings for test-fs.c Include on Unices, fixes warnings about unlink() not being declared. commit 4d7cfe431348613f84deffc85d3d868db5c0ec74 Author: Ben Noordhuis Date: Thu Sep 8 00:00:18 2011 +0200 test: remove stale prototype declaration commit cc91989cc275535400515ff899cc2a75e5d17cbf Author: Ben Noordhuis Date: Tue Sep 6 15:44:47 2011 +0200 unix: fix buffer overrun in uv__strlcpy() Reported by Thomas Shinnick. commit e8ab5cbe70a9a6f4251f12da73f6e4b7761420b6 Author: Ben Noordhuis Date: Tue Sep 6 03:46:43 2011 +0200 test: fix utime and futime tests on windows commit 3d538af06ba0199f10e1bd19f475956e90a20e39 Author: Bert Belder Date: Tue Sep 6 03:20:16 2011 +0200 win: correctly manage child process stdio handles commit 79d9f818815b48b5277cd83bb30aa81be1141618 Author: Ben Noordhuis Date: Tue Sep 6 02:52:23 2011 +0200 unix: implement uv_fs_futime, add tests for uv_fs_utime and uv_fs_futime commit 58ef43eee71bf1f0631a84dae8670b5cd11e7405 Author: Bert Belder Date: Mon Sep 5 04:35:48 2011 +0200 win: use win32 api for file reading and writing commit b7d88070d80e14ce922e9b991d48737076da6b08 Author: Ben Noordhuis Date: Tue Sep 6 00:16:41 2011 +0200 fs: add UV_ENOENT error code, add test commit efcd273d68c7062fd05242d7311128944f912685 Author: Ben Noordhuis Date: Tue Sep 6 00:15:56 2011 +0200 unix: translate fs errno codes to libuv error codes commit bb0c6e6d53a6618f48de54bc174fdb9f2816bd3f Author: Ben Noordhuis Date: Mon Sep 5 16:05:28 2011 +0200 unix: move linux feature detection macros to internal.h commit a9ba756bfd02543d1a9d5b61799c382468666591 Author: Ben Noordhuis Date: Mon Sep 5 15:04:16 2011 +0200 unix: fix warning: comparison between signed and unsigned integer expressions commit d9176108d2510b9e92dd0e2b9e03538661f1c1a2 Author: Ben Noordhuis Date: Mon Sep 5 15:03:52 2011 +0200 unix: fix event loop not being unref'd on eio error commit ed355d371ea5c63d93328fec4d75481b7fc26ba5 Author: Ben Noordhuis Date: Mon Sep 5 14:23:41 2011 +0200 unix: fix const correctness warnings commit a8017fd8a2584550966e0eecbb07467934031d84 Author: Igor Zinkovsky Date: Sun Sep 4 23:25:29 2011 -0700 windows: update uv_fs_* functions to work with req.path commit b90459fc8183b94b93e285068762f1497f4d7577 Author: Igor Zinkovsky Date: Sun Sep 4 23:31:25 2011 -0700 windows: use _stati64 commit 991f6ee044cf28fe5672670ef5f214096eee2b5d Author: Ryan Dahl Date: Sun Sep 4 18:45:41 2011 -0700 unix: Set req->result to -1 on async uv_fs_readdir error fixes test/simple/test-fs-error-messages.js in node. commit be3b37854e1ad6bf210615b583c3fabe6240abdb Author: Ryan Dahl Date: Sun Sep 4 18:38:42 2011 -0700 win: initialize req.path = NULL. commit e1af07e83149024f915febfc7436fb682d8a0633 Author: Peter Bright Date: Sun Sep 4 20:47:16 2011 +0100 Open files with sharing enabled. Fixes node's issue #1449. https://github.com/joyent/node/issues/1449 commit a18860aec6416e4e6a9540471c61e9a497f55703 Author: Ryan Dahl Date: Sun Sep 4 18:05:06 2011 -0700 Add uv_fs_t.path on unix and tests Windows implementation missing https://github.com/joyent/libuv/issues/177 commit b6ede6c7242957694c8380cdfb6342088d8131c1 Author: Ryan Dahl Date: Sun Sep 4 17:12:44 2011 -0700 unix: uv_fs_readdir sync skips . and .. Fixes test fs_async_dir commit 7ccc7470e07d4d646584d179e142eb6daa40c3c4 Author: Ryan Dahl Date: Sun Sep 4 16:54:27 2011 -0700 Add test for uv_fs_readdir sync commit 142a70292be9203f73b488570eeee92786eb82d1 Author: Ryan Dahl Date: Sun Sep 4 16:09:26 2011 -0700 unix: fix fs_chmod commit 826db453431b8c9cf761f227aec0a52a7aad36bb Author: Ben Noordhuis Date: Mon Sep 5 00:57:23 2011 +0200 test: fix uv_fs_readdir test Don't make assumptions about the order in which the directory entries are returned by the file system. commit a52a2c781ae924e0b356e246e95f2a662af4532f Author: Ryan Dahl Date: Sun Sep 4 15:48:47 2011 -0700 Fix warning on darwin commit d3f60da67c35bb7df137caba3c6f41fe5d8cd1d6 Author: Ben Noordhuis Date: Sun Sep 4 04:43:17 2011 +0200 unix: implement uv_fs_readlink commit 7db243dc6f09e830b5654bde0936cc6161b42e08 Author: Peter Bright Date: Sun Sep 4 04:45:16 2011 +0100 Bring inline with node common.gypi. Win32 readlink() commit 060026ced3f9ee991f86d10e5a1d9c54e4626151 Author: Igor Zinkovsky Date: Sat Sep 3 16:31:35 2011 -0700 windows: uv_fs_link + uv_fs_symlink commit 7b87ff7c9b39edf8d17ecce550ef58dee4170598 Author: Bert Belder Date: Sun Sep 4 21:54:31 2011 +0200 win: rename uv_loop_t.ares_channel to ares_chan to avoid confusing g++ commit 360f4119e4e91ffbbc5f6a340940808a088f9e1d Author: Bert Belder Date: Sun Sep 4 19:18:56 2011 +0200 Make getsockname/getpeername handle uninitialized sockets better commit 12b01e95f9afb56f602ca17f44d3b7e22e37c656 Author: Bert Belder Date: Sun Sep 4 04:46:41 2011 +0200 Specialize uv_xxx_getsockname, add uv_tcp_getpeername commit 18af13795ffb5890555f223d3c4acb617f267dfa Author: Ben Noordhuis Date: Sun Sep 4 03:45:28 2011 +0200 unix: fix warning: implicit declaration of function ‘strerror’ commit b680703178149214f059c369c4146153e65a787a Author: Ben Noordhuis Date: Sun Sep 4 03:45:15 2011 +0200 unix: fix warning: implicit declaration of function ‘memcpy’ commit 6422a14a8fba3aed079a5ac285e358c700a4dff0 Author: Luis Lavena Date: Fri Sep 2 19:40:34 2011 -0300 windows: correct a preprocessor typo GCC chokes on ##name## concatenation (since . and prepare are invalid tokens) commit cf5ed86a79f8082a9a022964fe6f8a2109b4aa80 Author: Igor Zinkovsky Date: Sat Sep 3 11:06:08 2011 -0700 windows: implement missing fs functions commit 30ca028196af2c4486a225d04e6c87da03233216 Author: Luis Lavena Date: Thu Sep 1 20:45:03 2011 -0300 Fix MinGW build Allow `make all` work under MinGW. Remove references to eio for MinGW. Fixes #170 Fixes #171 commit b89f4f34a48594dbb36e1c45eb7879bf5a6ee77f Author: Ryan Dahl Date: Thu Sep 1 17:40:57 2011 -0700 implement uv_fs_utime commit b47fa77eb571f2b4fa424164e14633d5871c2237 Author: Ryan Dahl Date: Thu Sep 1 17:12:31 2011 -0700 unix/fs.c: Apply macro magic, implement symlink, link, chown, fchown commit 9f932f92cfed14f5dc1bfa7371bab64980f102be Author: Ryan Dahl Date: Thu Sep 1 15:36:01 2011 -0700 add test fs_chmod, implement uv_fs_fchmod and uv_fs_chmod on unix commit 2e6035895cc48cb6096efb094a9b3d5f8332d237 Author: Ryan Dahl Date: Thu Sep 1 14:15:01 2011 -0700 Add test for uv_fs_fstat, implement on unix. commit 716e8eab39971ff98d75766e0d3bbcf5b0cfd91b Author: Igor Zinkovsky Date: Thu Sep 1 13:46:07 2011 -0700 windows: fix issue with SetFileCompletionNotificationModes on 64bit xp commit 22197ebf3fcd04300371b2dd154bbc6cee71c748 Author: Igor Zinkovsky Date: Thu Sep 1 11:54:43 2011 -0700 windows: include _stat struct into uv_fs_t commit 836cc204b6b73b6b6d5d5a456f1b9b3ecdeefc80 Author: Ryan Dahl Date: Wed Aug 31 15:37:16 2011 -0700 unix: Fix test-gethostbyname commit 6fd340b8cab84291f8cbd7d469eaf0cb3fd694bc Author: Ryan Dahl Date: Wed Aug 31 13:41:22 2011 -0700 unix: split out stream into its own file commit 38ce213b6a6c136eb61c45de505be6136f71655e Author: Ryan Dahl Date: Wed Aug 31 13:29:17 2011 -0700 unix: split out pipe commit 510407c03d0eef6a0d0c96431dee71fc79553c0e Author: Ryan Dahl Date: Wed Aug 31 13:11:38 2011 -0700 unix: split out tcp module commit b9120d0b0a5ead72812f9e831193e2cf6fcedf8b Author: Ryan Dahl Date: Wed Aug 31 12:07:43 2011 -0700 Simplify Unix makefile commit e553f96f94da0526cc74234d846ef716772e0fcc Author: Ryan Dahl Date: Wed Aug 31 11:50:08 2011 -0700 unix: split out uv_spawn into src/unix/process.c commit 490c83dd35e3a3256b7f6e2d1aaeaf05ed6be690 Author: Ryan Dahl Date: Wed Aug 31 11:26:43 2011 -0700 move src/uv-unix.c to src/unix/core.c commit 6144c93bbc5b4afd3eb516b02f8852d347897b91 Author: Ryan Dahl Date: Wed Aug 31 11:22:37 2011 -0700 unix: split out error code into separate file commit e97958ac3bf644cda9b0aee7b94b7ab93415d21d Author: Ryan Dahl Date: Wed Aug 31 11:14:36 2011 -0700 unix: Split out c-ares integration into separate file commit 58461d5ae7258a57ec431b624690535cd5088247 Author: Ryan Dahl Date: Wed Aug 31 11:06:38 2011 -0700 split out unix's udp source commit cec94ee0758113cd9690cc63a8af8d73510f4cc8 Author: Ryan Dahl Date: Wed Aug 31 10:43:02 2011 -0700 docs for uv_fs methods commit 9e657fa5b2024da39fdf57d4a283f5efe772053d Author: Ben Noordhuis Date: Wed Aug 31 19:35:41 2011 +0200 Update .mailmap commit c23f789f9ef00af4777a3674f0ddcd77c7381e94 Author: Ben Noordhuis Date: Wed Aug 31 16:50:11 2011 +0200 Update AUTHORS, add .mailmap commit ea4271fa90e091308bcfefdc1766827afbea7ebf Author: Ryan Dahl Date: Wed Aug 31 01:43:09 2011 -0700 submit error to correct loop commit b47c474cfd62eaf0030e069c160b363a2cb8ec2a Author: Ryan Dahl Date: Wed Aug 31 00:43:55 2011 -0700 Move private headers into include/uv-private commit 1408ac4c4f1f6c917267072f24beab422d0752fd Author: Ryan Dahl Date: Wed Aug 31 00:33:14 2011 -0700 Move src/ev to src/unix/ev commit 5fd68a016aaad7ecbabe119b4b6fd67d68b12b6a Author: Ryan Dahl Date: Wed Aug 31 00:29:47 2011 -0700 Move unix platform files into src/unix commit 231298a5e897512ff2994e33d02eef37291bba61 Author: Ryan Dahl Date: Wed Aug 31 00:24:07 2011 -0700 move eio stuff into src/unix commit e3f910d0a9dc523565b9f7437079e0db45926b7f Author: Ryan Dahl Date: Tue Aug 30 22:52:50 2011 -0700 Multiplicity update on unix Does not yet support multithreaded use of the thread pool. commit b44ecf99292e9892a5ef89fff19e95958d380dc0 Author: Bert Belder Date: Wed Aug 31 05:18:48 2011 +0200 multiplicity: update benchmarks commit 8e3a8602addfa1f7689f8fc151b6516632ffd4c8 Author: Bert Belder Date: Wed Aug 31 04:19:26 2011 +0200 update tests for multiplicity commit 78debf9f673f181cd1207e19af84f58e673cb0dd Author: Bert Belder Date: Wed Aug 31 04:19:16 2011 +0200 win: multiplicity commit 3aec77f9d448ad4f5a13ee8d32515eab93fb741b Author: Bert Belder Date: Wed Aug 31 04:19:07 2011 +0200 bring back uv_init commit 56dcaf9b0621c7aaffd31257568a7b76c181d51b Author: Ryan Dahl Date: Wed Aug 31 04:18:29 2011 +0200 unix: multiplicity commit 0ba44cfd4e76ad536ff9519d73fc7556a24baa4a Author: Ben Noordhuis Date: Tue Aug 30 12:49:48 2011 +0200 ev: improve feature detection on linux commit 2af955dbf4efd3d0937376170f7fe446c5387679 Author: Jeroen Janssen Date: Tue Aug 30 12:09:06 2011 +0200 Fix posix dirent usage Fixes #161 commit ca1171132e93d87714e98cd303a90290f83a94c2 Author: Ryan Dahl Date: Tue Aug 30 01:53:24 2011 -0700 win: stub out missing uv_fs functions commit a6ed1757abd47d0e56039273affee85795bfae41 Author: Ryan Dahl Date: Tue Aug 30 01:32:53 2011 -0700 unix: implement uv_fs_lstat commit dbc1cb0e66570d1a408b9d0ebde77f74db5b7963 Author: Ryan Dahl Date: Tue Aug 30 00:58:46 2011 -0700 Remove pthread-win32 commit d20233c7a8bcfe1c7d6caddefe1d99ff821edd8a Author: Ryan Dahl Date: Tue Aug 30 00:54:59 2011 -0700 Fix long lines commit 894c005c426b147667506340172d2530031d233d Author: Ryan Dahl Date: Tue Aug 30 00:52:43 2011 -0700 unix: fix fs_async_sendfile commit 1a4ead53d608365d5ab2a2a8937345ae4fe51e48 Author: Ryan Dahl Date: Mon Aug 29 22:57:34 2011 -0700 unix: implement uv_queue_work commit 0e81406bfb2acf61eda496bdae286b215b93a337 Author: Ryan Dahl Date: Mon Aug 29 22:08:51 2011 -0700 unix fs_async_dir works commit cf08c168ea02ba6c76c8e4307ba8e49e5e1d782c Author: Ryan Dahl Date: Mon Aug 29 20:50:12 2011 -0700 Use Windows compatibile flags commit 5d524fff1ac0ebc642949367b34affa36ed6f23e Author: Ryan Dahl Date: Mon Aug 29 20:41:45 2011 -0700 unix passes test fs_file_async commit cbbb254e575422206558672b8de85cc5fef1ed86 Author: Jorge Chamorro Bieling Date: Mon Aug 29 15:21:11 2011 -0700 Fix for joyent/node#1506, OSX threaded write()s bug commit df0b483ce3830387e02cf75714532161eff7791c Author: Ryan Dahl Date: Mon Aug 29 15:03:42 2011 -0700 Fix gyp build commit 3be275bad7186c22f9c4d6a3cb6f170904bc9cee Author: Ryan Dahl Date: Mon Aug 29 14:36:31 2011 -0700 Begin implementation of UNIX uv_fs_ functions Adding this incomplete work now to ease rebase troubles later as it moves the functions to src/unix/fs.c and introduces src/unix/internal.h. commit 925564e968d320a73542bab1a8eb625b7da3f4bd Author: Igor Zinkovsky Date: Sat Aug 27 13:59:34 2011 -0700 windows: improve error handling for fs functions commit 3a374ca7c9fd97f6b0fb26422c5ac21670b3d0fa Author: Igor Zinkovsky Date: Fri Aug 26 21:51:39 2011 -0700 add missing values to uv_fs_type commit 3ea037ccb04f8561d54755c5d26b3357a54296f5 Author: Igor Zinkovsky Date: Fri Aug 26 18:11:31 2011 -0700 windows: free fs arguments inside uv_fs_req_cleanup commit 7cad73aa475b90a92784c11f8e69a6ac82122531 Author: Ryan Dahl Date: Fri Aug 26 11:26:24 2011 -0700 Fix build for UNIX commit 25175c7071c37dddd7a450ae741b623755797900 Author: Igor Zinkovsky Date: Fri Aug 19 16:46:42 2011 -0700 uv_fs & uv_work APIs commit 183178a5662621db54acc83372d8dd6e50bb88ac Author: Igor Zinkovsky Date: Fri Aug 26 10:54:42 2011 -0700 update readme with vcbuild.bat instructions commit 835782a98023e1663a0c7aca9d4ea6d518d4ccb3 Author: Clifford Heath Date: Fri Aug 26 18:02:20 2011 +0200 eio: Mac OSX 10.5 (Leopard) does not have fdatasync commit e954b4cd991d607e96f1f0da7fece39cbdd2d0bb Author: Igor Zinkovsky Date: Fri Aug 26 03:13:47 2011 -0700 merge create_msvs_files.bat and vcbuild.bat into vcbuild.bat commit 39aac4a5fc38aceb39f00b2b2261c7736c874686 Author: Bert Belder Date: Fri Aug 26 02:02:20 2011 +0200 win: better shutdown for pipes commit 27c52a603457b1c02cecc31400f47a04a75d9e5d Author: Bert Belder Date: Fri Aug 26 02:20:35 2011 +0200 win: stop reading on tcp receive error commit 6490c6a38e8b936ef1ad6000530a6dc50b3460d2 Author: Ben Noordhuis Date: Fri Aug 26 00:16:07 2011 +0200 unix: improve accept4 syscall feature check commit 738e2da0c14164748cfcde52bf4c3d382989b96f Author: Ben Noordhuis Date: Thu Aug 25 02:30:10 2011 +0200 test: add udp getsockname test commit 40efa9c7316163bcd0494ac39bff355790785577 Author: Ryan Dahl Date: Wed Aug 24 17:40:35 2011 -0700 win: Fix uv_getsockname for UDP commit 80e54918864b020b408b04d4868cf97f25a4883b Author: Ryan Dahl Date: Wed Aug 24 12:24:44 2011 -0700 Simplify UDP docs commit 1f28f81236f176c0025e6871a93df74741fd8616 Author: Bert Belder Date: Wed Aug 24 15:37:48 2011 +0200 Fix mingw missing IPV6_V6ONLY commit d135122edbfcfefdeb9901057516f878853036ff Author: Ryan Dahl Date: Wed Aug 24 01:30:04 2011 -0700 Remove iocp-links - out of date, wrong info commit 58fab0763556240b9e0b9aa8eea6549aba30656c Author: Ryan Dahl Date: Wed Aug 24 01:23:47 2011 -0700 Remove BSDmakefile commit b09411a84bc211188b9a00d5a11b05cacc67a2bd Author: Ryan Dahl Date: Wed Aug 24 01:11:13 2011 -0700 Update build instructions commit 36c9b791d4b37de7312f623c7c6a736e46642760 Author: Bert Belder Date: Wed Aug 24 05:16:34 2011 +0200 Fix bugs in test-udp-send-and-recv and benchmark-udp-packet-storm commit 1870c18f3c741fddae9ec3363e67f62ff0af804d Author: Bert Belder Date: Wed Aug 24 04:40:14 2011 +0200 win: change uv_getsockname signature to support udp commit 5c9d749a574cc09af598c6d4e8bfcc4cb91720b2 Author: Bert Belder Date: Wed Aug 24 04:31:36 2011 +0200 win: udp support commit 36ce74f2ca9a3a943b342a79837cd3453a2764d8 Author: Ben Noordhuis Date: Fri Aug 19 23:22:30 2011 +0200 Add UDP support to libuv. commit 52024061e4d4434cd47593bf6b1bf3c0411bd49f Author: Ben Noordhuis Date: Tue Aug 23 19:33:12 2011 +0200 Make uv_getsockname() operate on uv_handle_t handles. commit 5cae6e4e570b9b50e32d6722a677ec9c5729e941 Author: Bert Belder Date: Tue Aug 23 20:36:52 2011 +0200 win: use uv_req_t.overlapped.Internal field to propagate request errors commit 811828719ff265a7f9de99620aab3c66afe65ab2 Author: Bert Belder Date: Tue Aug 23 20:33:26 2011 +0200 win: store the tcp deferred bind error in uv_tcp_t.bind_error, remove uv_handle_t.error commit b931e93c3f9ce572296d61ae958e507052855f38 Author: Bert Belder Date: Tue Aug 23 19:46:04 2011 +0200 win: get rid of deferring bind errors for uv_pipe_t It doesn't work anyway commit a8d2613ba017d8daace82af82543181172a9fdc2 Author: Bert Belder Date: Tue Aug 23 20:39:24 2011 +0200 win: integrate uv_close_error into uv_close commit 6622c35bc4966622d71f30dea95727e1f8597370 Author: Bert Belder Date: Tue Aug 23 18:52:33 2011 +0200 win: add ntstatus-to-winsock-error mapping commit 301d9283eec87ce9c8b3cecdbc726aa6583eefe9 Author: Bert Belder Date: Tue Aug 23 20:41:07 2011 +0200 trailing whitespace commit ce9171d41f15f4fa5f9e6752ff1186b5bf480c4c Author: Ryan Dahl Date: Mon Aug 22 19:28:45 2011 -0700 unix: uv_read_start should fail if UV_CLOSING set commit bdd880e7fceb1ff9c497e93711c966e8e3ca6863 Author: Ryan Dahl Date: Mon Aug 22 19:28:27 2011 -0700 unix: add a few asserts, cosmetic touch ups commit 4e9edceb980401d92d45710a07b00872b430fd12 Author: Igor Zinkovsky Date: Mon Aug 22 15:57:50 2011 -0700 windows: temporarily disable non-zero reads commit ce207917fd50eae2caa07e0fcd3e2964557aef19 Author: Jeroen Janssen Date: Sun Aug 21 13:04:31 2011 +0200 remove unused variable Fixes #151 commit d01676fc732d9284d509afa7eb6b7efd8d6018a6 Author: Ben Noordhuis Date: Mon Aug 22 14:26:01 2011 +0000 build: define _XOPEN_SOURCE=500 on SunOS Exposes msghdr.msg_flags, required for UDP support. commit 6cc241ac7aec20303c071fd8ab202e3dd068c6a5 Author: Ben Noordhuis Date: Mon Aug 22 13:50:44 2011 +0000 Fix 'incomplete prototype' compiler warnings on SunOS. commit 062af9fea8e2d60f4d28cf8d6b8d665f58e5890f Author: Bert Belder Date: Fri Aug 19 17:18:14 2011 +0200 win: fix buffer leak when using non-zero tcp reads commit beaa67618403b3a9d7b455f09848a2dc36de3fba Author: Bert Belder Date: Fri Aug 19 17:16:17 2011 +0200 win: rename UV_HANDLE_TCP_ZERO_READ to UV_HANDLE_ZERO_READ commit e45284dd4aace24a7b42f8dbd70bfc849ca12345 Author: Bert Belder Date: Fri Aug 19 17:17:06 2011 +0200 win: prototype ordering commit d1a63c40031b3b17f4b58db863181dc8a3696e2a Author: Bert Belder Date: Sun Aug 21 21:46:40 2011 +0200 win: move winsock intialization out of tcp.c commit 48a8f1959ade9b0c7d8c8088c177d2c3c1b0aa5b Author: Bert Belder Date: Sun Aug 21 21:46:20 2011 +0200 win: merge kernel32.h and ntdll.h; declare pointers in winapi.h commit cc0b0e62387636b80a78e1dca9b7eb4188c4835e Author: Bert Belder Date: Thu Aug 18 23:24:00 2011 +0200 Remove trailing whitespace commit 8448ee4bf62f0a7ae7cab389e3cf4b473669ebd4 Author: Igor Zinkovsky Date: Thu Aug 11 13:18:07 2011 -0700 Windows: Do simultaneous pending AcceptEx calls. commit 123119342fd2de44e830a6acad1ab7ab263622e2 Author: Ryan Dahl Date: Thu Aug 18 15:31:54 2011 -0700 pound: only display connect errors on DEBUG commit f6c25a17ea11af91add94b07585d604f47161ebb Author: Igor Zinkovsky Date: Thu Aug 18 01:10:02 2011 -0700 Fix pipe-pound and clean-up commit ac1ce29ad087d67b52fb4ddb0973fe060f104c77 Author: Ryan Dahl Date: Sat Aug 13 20:28:14 2011 -0700 Improve pound benchmark by reconnecting in close_cb commit 56b09db2eda5a4873989219abb7abd4271f55e1f Author: Igor Zinkovsky Date: Thu Aug 18 11:18:17 2011 -0700 windows: set accept socket to INVALID_SOCKET in case of accept failure commit d77e9795d394ca8e4e9537ef5466a0901ddc869c Author: Ryan Dahl Date: Thu Aug 18 10:35:52 2011 -0700 Fix spelling commit 8ed2ffb2bf35304675d06cd07c3f440dccd46eb2 Author: Bert Belder Date: Thu Aug 18 04:07:58 2011 +0200 Windows: when searching path, look only for .com and .exe files commit 422c139306ec65832471e57112c4ceb8e7002302 Author: Igor Zinkovsky Date: Mon Aug 15 16:49:57 2011 -0700 Windows: Pre-allocate buffers for overlapped WSARecv if the number of active tcp streams is below 50. commit e5a938f1f44cbc0f12b6b1a75ef5ffe90eec80c6 Author: Ryan Dahl Date: Wed Aug 17 17:38:39 2011 -0700 Add uv_buf_init() constructor commit cc5aa51fdf115bd15eb422a3e483d8bc84823626 Author: Bert Belder Date: Wed Aug 17 16:00:05 2011 +0300 Small correction to AUTHORS commit f71acf1988faef924e794d3339d1479e11e2a64b Author: Bert Belder Date: Wed Aug 17 14:42:06 2011 +0200 Update AUTHORS commit 6b27bf9a86e8bdca612a01e88a3ca3e275d88301 Author: Jeroen Janssen Date: Wed Aug 17 13:24:09 2011 +0200 uv_process_pipe_shutdown_req call should match prototype commit a51f3766559bbfc2d459d59bdd3206a2e3f954b4 Author: Jeroen Janssen Date: Wed Aug 17 13:21:44 2011 +0200 added missing prototype for uv_process_pipe_shutdown_req commit 507c4ccea6b86c26bb2ac7ab036d1b7a83e44c25 Author: Jeroen Janssen Date: Wed Aug 17 13:23:18 2011 +0200 fixes for unsigned/signed comparison commit 0883b3d5fc4052c6607d20e0f7e6ac7aee724dd3 Author: Jeroen Janssen Date: Wed Aug 17 13:23:44 2011 +0200 remove unused variables commit ed118836c42b48947ed0d04c3323ac37dcb5fbed Author: Ryan Dahl Date: Wed Aug 17 00:42:44 2011 -0700 Improve docs commit e67b9a37a026433a8f09f9dacdadf308dbcd6bae Author: Igor Zinkovsky Date: Mon Aug 15 16:49:57 2011 -0700 Skip IOCP for tcp operations that complete synchronously commit 358d89aa79923e63332a1bf987a55b2651775359 Author: Ben Noordhuis Date: Mon Aug 15 20:41:57 2011 +0200 build: fix build on systems where `ld --as-needed` is the default Fixes unresolved symbol linker errors from -lm and -lrt. commit 7cafd8b10549c6af62076c188beef498bbde1484 Author: Igor Zinkovsky Date: Mon Aug 15 14:48:52 2011 -0700 update vcbuild.bat with correct sln file commit fc2632189019baf7f0d1b87f6953320927a756b2 Author: Igor Zinkovsky Date: Thu Aug 11 23:20:40 2011 -0700 use GetQueuedCompletionStatusEx if the OS supports it commit 38c2322378f4ec000a7c4a5ce0ce6619c7ef25a0 Author: Bert Belder Date: Mon Aug 15 05:52:50 2011 +0200 Windows: ipv6 "any address" is ::0, not ::1 commit c6c3d15d81effbc6886c486848d89cc8df3c2090 Author: Bert Belder Date: Mon Aug 15 04:25:09 2011 +0200 Windows: slightly improve error reporting commit 50201345685d12b4b67d061d9b74a46d5f2ce886 Author: Ben Noordhuis Date: Mon Aug 15 03:21:56 2011 +0200 uv-unix: remove unused variable 'iov' commit e89f54ece4e0f6d1da98f50444bb1d6be70c7b97 Author: Ryan Dahl Date: Sat Aug 13 22:56:11 2011 -0700 Add forgotten gyp files commit 2942f5a8cc0d45d19db678a2a1908b67c7a16cc5 Author: Peter Bright Date: Sat Aug 13 20:23:35 2011 -0700 GYP upates commit 035fd5beb08751a505792742ee8ea2182b8fc138 Author: Ben Noordhuis Date: Sun Aug 14 04:01:57 2011 +0200 eio: future-proof glibc version detection commit 58991928073d9bfba5e811b3dd960ac71810be77 Author: Ben Noordhuis Date: Sun Aug 14 02:55:37 2011 +0200 eio: fix HAVE_SYNC_FILE_RANGE heuristic on linux commit da4e864684f84a769d4b4c2addfac441ffc6732d Author: Igor Zinkovsky Date: Fri Aug 12 22:18:27 2011 -0700 vcbuild.bat for building libuv with msbuild commit f1df74dd5c4fb7f4527ce91277f4c842b9351fff Author: Ben Noordhuis Date: Sat Aug 13 00:09:18 2011 +0200 Add Peter Bright to AUTHORS commit 7f82995fb45dfcbb8f3d9b31a90fd41b75004e3c Author: Augusto Henrique Hentz Date: Fri Aug 12 16:06:02 2011 +0200 uv-unix: fix typo in definition of HAVE_PIPE2 The define HAVE_PIPE2 was always being set, even when the requisites were not met. commit 65f71a20391b1ac4651bda8bd95e8924b8a14a21 Author: Ryan Dahl Date: Fri Aug 12 04:08:32 2011 -0400 Temp disable pipe2 on linux commit 20074288ac18f491db9fdf038c82fd5ad4e3b640 Author: Ben Noordhuis Date: Fri Aug 12 04:46:35 2011 +0200 build: add BSDmakefile Warns user to run `gmake` instead. commit 1485c47999daa754c7790e70f2b7dfcf9d212793 Author: Ben Noordhuis Date: Fri Aug 12 04:44:41 2011 +0200 eio: define HAVE_UTIMES 1 on freebsd, fixes build commit 23e9ecb6672b5bbdff9195daa78c55b0941f71b4 Author: Igor Zinkovsky Date: Thu Aug 11 18:19:16 2011 -0700 fix memory leak in echo server commit 7b5d28e4b9a12625b4386a442bab681e78a1c3db Author: Ben Noordhuis Date: Fri Aug 12 02:51:16 2011 +0200 build: use -pthreads on sunos, -pthread everywhere else commit 4c63f554a6007aa7a2d9ed686f5bc265a3ed1436 Author: Bert Belder Date: Fri Aug 12 02:34:49 2011 +0200 Windows: much better pipe_pound_1000 results commit 89aa4078cc95c3995f60f488220365f6939d03b3 Author: Bert Belder Date: Fri Aug 12 02:33:38 2011 +0200 Windows: try to avoid using the thread pool for pipe shutdown commit a2ee4854c67e0d3516d88cb029f1e486221505c5 Author: Bert Belder Date: Fri Aug 12 02:32:30 2011 +0200 Windows: dynamically load some ntdll functions commit 2d40e35b7e53cfc57f55371757e9205d070fb284 Author: Bert Belder Date: Fri Aug 12 02:34:09 2011 +0200 Style commit b13f46f6cb87c80add0c0fbb758cf7231d9b88c6 Author: Bert Belder Date: Fri Aug 12 02:35:27 2011 +0200 Add msvs build products to .gitignore commit d35873895460dc0ae693d8ca3d183e59519d1236 Author: Ben Noordhuis Date: Thu Aug 11 23:35:56 2011 +0000 bench: #undef NANOSEC, defined in time.h on solaris commit c952352f77e947a2805066a482df73132f4cf0e7 Author: Ben Noordhuis Date: Thu Aug 11 23:20:37 2011 +0000 build: use -pthreads, older gccs don't recognize -pthread commit b44f9d75ea95adb004155998fd4f61c5aabfbd58 Author: Ryan Dahl Date: Thu Aug 11 16:35:56 2011 -0700 unix: cloexec stdio streams commit f7b4e65090735441f1705805a06eb4b84500018b Author: Ryan Dahl Date: Thu Aug 11 15:52:22 2011 -0700 unix: introduce SPAWN_WAIT_EXEC to turn off poll feature commit 11aa1ea096a3ab17075126dfb93d90f4565e8439 Author: Ryan Dahl Date: Thu Aug 11 11:27:35 2011 -0700 Remove unnecessary casts commit ca633920f564167158d0bb82989d842a47c27d56 Author: Bert Belder Date: Thu Aug 11 04:16:46 2011 +0200 Windows: fix pipe shutdown commit a89410456c34bcd25421de2d888e9f6e17602079 Author: Bert Belder Date: Thu Aug 11 04:01:05 2011 +0200 Whitespace commit e8497aee5a3db524e8c124949205e95aff5df169 Author: Ben Noordhuis Date: Thu Aug 11 02:05:18 2011 +0200 Add error code UV_EPIPE. commit b328e4cb058f69a6cdacbc2a5ac4a4cba3f1137d Author: Ben Noordhuis Date: Thu Aug 11 01:29:54 2011 +0200 uv-unix: fd 0 is valid file descriptor uv__bind() and uv_tcp_listen() created a new socket if tcp->fd <= 0 but 0 is a valid file descriptor. The second bug was that the newly created socket wasn't actually assigned to tcp->fd. Fixes failing node.js test: test/simple/test-regress-GH-746.js commit ee2027dd1316f330e1676cf92d6aff5b85201afb Author: Ryan Dahl Date: Wed Aug 10 16:16:47 2011 -0700 fix preprocessor again commit b6b97f305ea1ef4876ccd8b0f3ad2933305c27c0 Author: Ben Noordhuis Date: Thu Aug 11 00:29:50 2011 +0200 uv-unix: guard against self-close by connection_cb connection_cb may close the server socket inside the accept loop, handle it. Fixes failing node.js tests: test/simple/test-net-connect-buffer.js test/simple/test-net-create-connection.js commit afb18596001cdb5fcf6c72055650a66abc74179b Author: Ben Noordhuis Date: Wed Aug 10 23:12:45 2011 +0200 uv-unix: remove dead code commit 06623d15f2d306711236d55d29e4ca445dc215a7 Author: Ryan Dahl Date: Wed Aug 10 15:01:38 2011 -0700 More preprocessor fixes... commit dac30a15f249ad232b9e04287f9eeda164d9169f Author: Ryan Dahl Date: Wed Aug 10 14:56:16 2011 -0700 More preprocessor fixes commit 5dc8037fcffa8e9fc03f51ba2795a4ae368b6033 Author: Ryan Dahl Date: Wed Aug 10 14:40:45 2011 -0700 Fix mingw build by using preprocessor correctly. commit db190c7b4f1aee1db8160a6c4f427ec44bd1bfb3 Author: Ryan Dahl Date: Wed Aug 10 14:21:32 2011 -0700 unix: uv_pipe_connect should call uv__stream_open commit b8fe56d837b68534b400788aa44b40d4734c7158 Author: Ryan Dahl Date: Wed Aug 10 14:19:33 2011 -0700 Remove unnecessary casts commit 9a127af7c0a71eedcef013d6443e53f83a1ab176 Author: Bert Belder Date: Wed Aug 10 22:55:11 2011 +0200 Add header files to gyp script This makes generated project files more convenient to work with. commit 71396f6a8f34057ac2b2e8fe9edfd78a81b575d6 Author: Bert Belder Date: Wed Aug 10 22:49:14 2011 +0200 Polish create-msvs-files script commit d3cc9a39ed6e23f7ff634f9a41b402e5eb97c926 Author: Bert Belder Date: Wed Aug 10 22:48:22 2011 +0200 Move gyp files to root commit 4b1b8faea8ed58e436157c48c38cb41c269cdc78 Author: Robert Mustacchi Date: Tue Aug 9 14:36:31 2011 -0700 Clean up SunOS build commit 54a6c6fee0c384450ca14ae60b7f8eef3f67b80d Author: Peter Bright Date: Tue Aug 9 04:13:38 2011 +0100 Ignore VC++ files. commit 3409c9b3836e28f8fb3ca22d48ab521950fd3a78 Author: Peter Bright Date: Tue Aug 9 04:14:06 2011 +0100 Include important Windows environmental variables even when a blank/custom environment is specified. commit 4abd1e0cccf8e78acf81c62dc2d50b9c515850d9 Author: Ben Noordhuis Date: Sat Aug 6 01:49:03 2011 +0200 uv-unix: close file descriptors immediately in uv_close() Don't defer closing of socket and pipe file descriptors to the next iteration of the event loop. It breaks node.js unit tests that assume the call to `server.close()` immediately frees up the bound to address. commit 0c815cfe89cee1be8c0b0305009137f5bb5cd702 Author: Ben Noordhuis Date: Tue Aug 9 22:56:18 2011 +0200 eio: define HAVE_UTIMES 1 on cygwin, fixes build commit 0266c0ec576cc4df973e39ef0a422eb7423ba0bf Author: Ryan Dahl Date: Tue Aug 9 12:22:46 2011 -0700 Change for MinGW on Win 2k3 commit e5f513cf5885eb75e7bcac6da42e1bcfb57bc07b Author: Ryan Dahl Date: Tue Aug 9 12:23:41 2011 -0700 Remove desired-api.md commit 3f8bbb8c0fcb17005ab6bbe7a79a49d68209fe8b Author: Ben Noordhuis Date: Tue Aug 9 20:01:33 2011 +0200 bench: create separate arrays for TCP and pipe streams Size and alignment of tcp_conn_rec and pipe_conn_rec may differ so it's not safe to reuse a single array of conn_rec elements. commit 02ca3080a67806205b773b8d9376c3048b9fb4d2 Author: Ryan Dahl Date: Tue Aug 9 10:26:23 2011 -0700 EIO_CONFIG_H not used on MinGW commit 831b15a47c8fd04da38399872bc0c5ec0a7d70cc Author: Bert Belder Date: Tue Aug 9 17:35:18 2011 +0200 Windows: fix WaitNamedPipe thread bug commit 65ed582cae74dea3c50f3abd67b14806adda3bf3 Author: Ben Noordhuis Date: Tue Aug 9 03:15:49 2011 +0200 bench: run pound benchmark for at least 5 seconds, track connect failures commit 648baa3826e8c08f13510bccbe20ec5ab6654cf7 Author: Peter Bright Date: Mon Aug 8 18:11:01 2011 -0700 Fix missing prototype warnings. commit cee3cc6940e8312284b33ead90dbf661d132b5ff Author: Ben Noordhuis Date: Tue Aug 9 01:51:25 2011 +0200 bench: use high-res timer in pound benchmark commit f9eda88fe63c3d204de99e335b25669d4897b983 Author: Igor Zinkovsky Date: Mon Aug 8 15:09:14 2011 -0700 fix for pound benchmark commit 75c109055d330bdd617761ca8bd27fa596350ed2 Author: Ryan Dahl Date: Mon Aug 8 13:30:23 2011 -0700 Bring back standalone makefiles for a better transition commit 58dd01ab58aa6b252c3f11703733bcdb1349db6e Author: Ben Noordhuis Date: Mon Aug 8 16:07:27 2011 +0200 build: add debug target to Makefile commit 1493dcf359da0256605df3004c18b788256f5de9 Author: Ryan Dahl Date: Sat Aug 6 22:36:51 2011 -0700 Peter Bright's MSVS fixes commit 42c76f720f7e0749a5bef8c220f56de797e918e3 Author: Ryan Dahl Date: Sat Aug 6 18:54:29 2011 -0700 Add pthread-win32 temporarily Until Node does not rely on libeio interfaces. commit 7dda111306309d72ed8234d41767cbaca1abe42b Author: Ben Noordhuis Date: Sat Aug 6 23:55:35 2011 +0200 test, bench: add --list option to runners, prints available tests commit 6c3205557b25bb9099f4891c8f8f4819bfc2e49f Author: Andrea Lattuada Date: Sat Aug 6 15:35:24 2011 +0200 Remove uv_flag_* functions in favor of manual bit twiddling Fixes #121 Fixes #129 commit d9b0534ae0eaa0290e2f1dba33bf777a97506e4c Author: Jeroen Janssen Date: Sat Aug 6 19:38:41 2011 +0200 gyp: enable debug symbols with MSVC Fixes #130. commit 62d1c5751eba9a3b579a75c96a2ac73998165478 Author: Ben Noordhuis Date: Sat Aug 6 17:01:09 2011 +0200 uv-unix: fix warning: passing argument 1 of ‘eio_custom’ from incompatible pointer type commit 351a332e250346ea29b714bc72a9fa613cf89330 Author: Ben Noordhuis Date: Sat Aug 6 16:59:25 2011 +0200 build: don't assume python lives at /usr/bin/python commit 8abce89e57932f6c72c1798f2193663f6750024a Author: Ben Noordhuis Date: Sat Aug 6 14:43:50 2011 +0200 build: fix libeio build on linux Define HAVE_UTIMES so libeio includes commit 48877edfb8fc77976ca54121dc87e57343d9e851 Author: Ryan Dahl Date: Sat Aug 6 03:36:36 2011 -0700 Work around GYP bug - use absolute paths commit 60e973172e324e8cb8c5045abbea5fb6311fd071 Author: Ryan Dahl Date: Sat Aug 6 03:34:17 2011 -0700 Add pound benchmark. commit a30a7336f0ed8bb0c0bfeb1e401dcb3903c8efab Author: Ryan Dahl Date: Wed Aug 3 15:07:33 2011 -0700 Build with gyp commit 52e1a9e9973afdc39c70410d6034e3fe7e5bd458 Author: Ryan Dahl Date: Sat Aug 6 00:23:59 2011 -0700 Upgrade eio (it has better msvs support) commit a706a66d81cde6a6ab2a68d1999fc77aab4912ef Author: Igor Zinkovsky Date: Fri Aug 5 18:07:12 2011 -0700 accept benchmark commit cc143317b1b8cd9560f8955d299f0da80104be90 Author: Igor Zinkovsky Date: Fri Aug 5 17:41:31 2011 -0700 windows: fix req refcount for uv_pipe_connect commit 4ca89308b65d7cd3de0bd1dbf50bd68ad6ec2439 Author: Ryan Dahl Date: Fri Aug 5 17:40:47 2011 -0700 Remove assert that is broken on darwin commit 76338f794eb69cd235fbc221f3744205fef060d0 Author: Tom Hughes Date: Wed Jul 27 14:13:55 2011 -0700 ares_parse_a_reply: fix memleak commit 787ef5da8010933af4ad27f705ad976455c31a7c Author: Ryan Dahl Date: Fri Aug 5 11:51:09 2011 -0600 uv-unix: Fix missing symbols on FreeBSD7 systems. thanks Lenny commit 2fbcbe90c8cd9981045a99664d737498b27c5246 Author: Ben Noordhuis Date: Fri Aug 5 17:12:02 2011 +0200 uv-unix: fix build on systems that don't have pipe2() commit c834d5de9e4747e5138bed9140320b44622ab6de Author: Bert Belder Date: Fri Aug 5 08:22:01 2011 +0200 Windows: correct comment in process.c commit 041d60e1416335a817f735c41e033d27bd8f7ade Author: Ben Noordhuis Date: Fri Aug 5 04:01:09 2011 +0200 uv-unix: avoid exec-after-fork race in uv_spawn() The race condition in a nutshell: if ((pid = fork()) > 0) { kill(pid, SIGTERM); } else if (pid == 0) { execve("/bin/cat", argp, envp); } The parent sends a signal immediately after forking. Since the child may not have called `execve()` yet, there is no telling what process receives the signal, our fork or /bin/cat. To avoid ambiguity, we create a pipe with both ends marked close-on-exec. Then, after the call to `fork()`, the parent polls the read end until it sees POLLHUP. commit d84b2496161c7a11ead6e327c815e38add903ca4 Author: Peter Bright Date: Fri Aug 5 00:14:17 2011 +0100 Support for unescaped arguments, suitable for use with cmd /c. Robust argument escaping that hopefully matches Windows' algorithm for unescaping. commit c01d6f928ccf70587e620f388f8b6522c48e3a43 Author: Ben Noordhuis Date: Thu Aug 4 01:35:30 2011 +0200 ev: fix infinite loop in ev_walk() commit 642d97ced865307600a9d85257b23d61f1caa0c3 Author: Bert Belder Date: Wed Aug 3 02:09:37 2011 +0200 Windows: make process arguments buffer computation better commit ec143961d135adb3f49f5a2322774ef43e2520b9 Author: Bert Belder Date: Wed Aug 3 01:42:32 2011 +0200 Windows: fix bug in process arguments buffer size computation commit dbaddc4423d61fa16cca299650f8378cffba9cce Author: Bert Belder Date: Wed Aug 3 00:18:12 2011 +0200 Windows: avoid errorneous freeing of pipe handle commit b2ed24d86ecc561135edf566878b43d93e364d44 Author: Ryan Dahl Date: Tue Aug 2 07:05:54 2011 +0000 unix: Remove flock code solaris doesn't have flock commit 22ec2db4134953e1fffedb7fd1b6fd78d12e5293 Author: Ryan Dahl Date: Tue Aug 2 06:29:25 2011 +0000 solaris fixes commit 2e9a743da08d96ac7861400a316e3a9d3067979f Author: Bert Belder Date: Tue Aug 2 04:58:43 2011 +0200 Windows: report uv_spawn() failure asynchronously commit 6d940a3afcbd4280801f9adfb72c821c4edbccf9 Author: Igor Zinkovsky Date: Mon Aug 1 20:10:55 2011 -0700 windows: remove dependency on rpcrt4 and ole32 libs. fixes https://github.com/joyent/libuv/issues/118 commit c35548a69e1313e21202ee5a632d838d5241cf5e Author: Igor Zinkovsky Date: Mon Aug 1 16:50:59 2011 -0700 fix spawn_and_kill test on windows commit 0d29ea68c9734af66331108179893a7f53e5f58e Author: Igor Zinkovsky Date: Mon Aug 1 16:40:26 2011 -0700 windows: fix for space in args commit 404d697dc488f0b7bbc9638edbae6902fc0bdd2c Author: Ben Noordhuis Date: Tue Aug 2 01:12:01 2011 +0200 uv-unix: undo accidental revert of b700896 in 5ec2575 commit aa37c698ee22c039dc655179a47fd6eb48e69400 Author: Ben Noordhuis Date: Tue Aug 2 00:45:16 2011 +0200 test: add platform-specific checks for kill-after-spawn test commit 5a157171449175d0164756a47aad72fd26efd52c Author: Ben Noordhuis Date: Tue Aug 2 00:44:04 2011 +0200 test: make spawn_helper4 never return Its whole raison d'être is to sleep until it's killed. commit 5af7423f909697eb1265214658c56ce4601fbad3 Author: Igor Zinkovsky Date: Mon Aug 1 14:28:04 2011 -0700 always use PATH from parent commit 5ec2575c0eb27d34b8c7a4bd955da75c981bfba2 Author: Ryan Dahl Date: Mon Aug 1 13:55:55 2011 -0700 unix: Add UV_READABLE, UV_WRITABLE flags; clean up uv_shutdown commit e56c1d7a60c5d65f7b764de7f8b1ab39b2aeecd9 Author: Ben Noordhuis Date: Mon Aug 1 22:41:11 2011 +0200 test: exit with status code 1 in spawn_helper4 Fixes broken test spawn_and_kill. commit 31ecdcf3a4c6bf889f2f00a003483d94ee6689b4 Author: Ben Noordhuis Date: Mon Aug 1 22:34:07 2011 +0200 test: move run-test spawn helpers to a separate function commit 6c86f9e0a8e4b693f8de884c09522b95073b3c01 Author: Igor Zinkovsky Date: Mon Aug 1 13:28:23 2011 -0700 windows: get values of path and pathext env variables when they're not supplied commit b7008965bc9afe626f39c8b39d2c06331c0ec1ec Author: Ben Noordhuis Date: Mon Aug 1 22:23:06 2011 +0200 uv-unix: unlock pipe after use, carry over lock file from uv_pipe_bind() commit 023f99a60982a87cc50356ea77f52930d491cb8c Author: Ben Noordhuis Date: Mon Aug 1 18:14:14 2011 +0200 test: gets(3)? Just say no! commit d24403ac8ea6c249097c8281a3d2bdaddcb36856 Author: Ben Noordhuis Date: Mon Aug 1 18:05:29 2011 +0200 uv-unix: safely close pipe file descriptors commit a3852a7d73cee5709e727a053923f731398119d7 Author: Ben Noordhuis Date: Mon Aug 1 18:01:54 2011 +0200 uv-unix: set stream->accepted_fd=-1 in uv_pipe_init() stream->accepted_fd was zeroed in uv_pipe_init() and that made uv__finish_close() close the stdin file descriptor. Not good. commit e9bee5131a9de4fe9854b13dfc0ab3972dfbdb3f Author: Ryan Dahl Date: Sat Jul 30 22:45:03 2011 -0700 add spawn benchmark commit 1d6117a89bf08de8b80febdd8637e9a119aabefa Author: Igor Zinkovsky Date: Sat Jul 30 10:55:30 2011 -0700 windows: set mode for child pipe handle commit 3e6611a693e29a09c0211d905a5836027b68868c Author: Igor Zinkovsky Date: Fri Jul 29 23:54:52 2011 -0700 more output commit d272a2183dd8e1f2b0fe6f23771bec883daf90a3 Author: Igor Zinkovsky Date: Fri Jul 29 18:30:07 2011 -0700 Windows: spawn child processes commit 7108ca885341a81b405c71ecd1b12efc632504fb Author: Ryan Dahl Date: Fri Jul 29 15:36:28 2011 -0700 uv_spawn requires stdio pipes to be initialized commit 78e94e9589bf8d7206dbfe71a24c7346d9340aae Author: Ben Noordhuis Date: Fri Jul 29 21:07:09 2011 +0200 bench: remove unused locals from benchmark-pump.c commit eed6f395d1afb62ee93b916c5d52152481fcf350 Author: Ben Noordhuis Date: Fri Jul 29 03:23:36 2011 +0200 pipe: uv_pipe_listen raises UV_EINVAL on unbound socket commit 8e8af8fd348152da27abb080f9a8643ad4a2f295 Author: Ben Noordhuis Date: Fri Jul 29 02:45:38 2011 +0200 uv-unix: use lock file to detect stale UNIX sockets commit 3c057ff8e5fcc4843dfb0cca292943727da85492 Author: Ben Noordhuis Date: Fri Jul 29 01:54:21 2011 +0200 uv-unix: add simple lock file API for internal use commit d0e1e62d87820f50f020372b1699d9be0bf9e67e Author: Ryan Dahl Date: Thu Jul 28 18:53:20 2011 -0700 Increase eio thread stacksize commit cf5babef80a82cc8afc6153535c20ef4d7481169 Author: Ryan Dahl Date: Thu Jul 28 21:47:43 2011 -0400 Fix getaddrinfo bug commit a0994ac8fb5933eda51e0b1415bfbb395c35a634 Author: Ryan Dahl Date: Thu Jul 28 23:41:39 2011 +0000 Fix solaris build commit 6203c932d4d38617489d6569128baf88088fa879 Author: Tom Hughes Date: Wed Jul 27 13:58:39 2011 -0700 Fix memleak in libeio. commit fc7bc2be7016d313a44b3a136ef80882a59e30aa Author: Igor Zinkovsky Date: Wed Jul 27 11:05:32 2011 -0700 fix mingw build; add stubs for child process API commit a1adfe3e236eb7d3e18d724034e657e197dcab54 Author: Ben Noordhuis Date: Wed Jul 27 03:55:11 2011 +0200 uv-unix: cast argument to uv__stream_open() to uv_stream_t* commit ddee1821fab5f9f5ffa957fbc870caa25239304c Author: Ryan Dahl Date: Mon Jul 25 17:11:23 2011 -0700 Add spawn_stdout test commit 92bc7b4959dfc81b66830f8da3e403e7806b0094 Author: Ryan Dahl Date: Wed Jul 20 17:55:26 2011 -0700 Start uv_spawn() Unix only at the moment. Lacks test for stdio commit 252da78830c1b6618161227b206e6079a2f4ddd8 Author: Igor Zinkovsky Date: Sat Jul 23 10:47:14 2011 -0700 uv_std_handle + uv_listen on stdin commit e7497227bd0d51b881b476c569f5c8422ebaecca Author: Igor Zinkovsky Date: Fri Jul 22 15:32:27 2011 -0700 merge uv_tcp_listen and uv_pipe_listen into uv_listen commit 84ebddad8820a7256d80c82d771858ddf4f07b0b Author: Ryan Dahl Date: Thu Jul 21 11:57:37 2011 -0700 long lines commit 2806b0386b266ee7377459b49156a60a15b1dfea Author: Bert Belder Date: Fri Jul 22 12:07:39 2011 +0200 Windows: do not initialize pipe handle in uv_pipe_accept commit 52487194cfcb2735f7f91f7fbe599b6cb9321a80 Author: Ben Noordhuis Date: Fri Jul 22 01:45:06 2011 +0200 uv-unix: fix 'comparison between signed and unsigned integer expressions' commit 80d804b909a4eab52a9693167121662db27bb28b Author: Ben Noordhuis Date: Fri Jul 22 01:42:34 2011 +0200 unix: build with `-Wall -Wextra -Wno-unused-parameter` commit 272f164e6a4f5c1e34b57bcbf136bda1c8291b25 Author: Ben Noordhuis Date: Thu Jul 21 19:43:30 2011 +0200 uv-unix: uv_pipe_bind: raise UV_EACCESS on inaccessible socket Fixes failing test pipe_bind_error_addrnotavail. commit 27999e839ac94252f76bdad156d4ba10140d63d1 Author: Ben Noordhuis Date: Thu Jul 21 19:48:21 2011 +0200 test: update BAD_PIPENAME for Unices, check for UV_EACCESS commit 186abb00bc46fedae47e5508d8008a8e354b676f Author: Igor Zinkovsky Date: Thu Jul 21 10:38:05 2011 -0700 windows: return UV_EACCESS for invalid pipe name commit 7fbe0c3882313369d16ae234ef4cf2f128c477f3 Author: Ben Noordhuis Date: Thu Jul 21 19:01:11 2011 +0200 test: `run-tests helper_name` runs helper in same process Fixes #116. commit fb42f82df6c9316ef40be316f5706a761abe47b9 Author: Ben Noordhuis Date: Thu Jul 21 18:16:07 2011 +0200 uv-unix: uv_pipe_bind: raise UV_EINVAL if pipe already bound Fixes failing test pipe_bind_error_inval. commit 580a5b464f304184478c4eb8d8374234071dae81 Author: Ben Noordhuis Date: Thu Jul 21 17:55:24 2011 +0200 uv-unix: uv_pipe_listen: raise UV_ENOTCONN if pipe not bound Fixes failing test pipe_listen_without_bind. commit afd22904eaac088bc3512fcddb8b784598537382 Author: Ben Noordhuis Date: Thu Jul 21 15:55:23 2011 +0200 ev: mark inline functions in ev.h with __attribute__((unused)) Silences the ton of warnings you get with `gcc -Wall -Wextra`. commit 1028a9c6a75fde47b848c09c450fc066249fac1b Author: Ben Noordhuis Date: Thu Jul 21 15:22:05 2011 +0200 uv-unix: handle EINTR properly Fixes #113. commit 5b532d5f6094656e9733cd824653a983fd1a047e Author: Bert Belder Date: Thu Jul 21 14:57:27 2011 +0200 Windows: do not hang if LOOP->refs become 0 in a prepare callback commit 1ab28df433a825eb0c85cd061791150b5acae40e Author: Bert Belder Date: Thu Jul 21 14:53:40 2011 +0200 Test that loop refs going down to zero in a prepare callback does not hang the event loop commit 9d8c9cce7cbf11ca03c2408aac696c346744a79f Author: Bert Belder Date: Thu Jul 21 14:51:56 2011 +0200 Move loop reference tests to their own file commit 6e505766be1dc32a56f93a323acefe53595c1ba2 Author: Bert Belder Date: Thu Jul 21 04:25:01 2011 +0200 Windows: follow libev loop semantics more closely commit f8bdddcda9c778299b2830ad46e5943e4874048b Author: Igor Zinkovsky Date: Tue Jul 19 23:45:00 2011 -0700 Allow pipe name to be in utf8 for uv_pipe_bind and uv_pipe_connect commit ee5236cf56ffcd5f132ce5292a9d38bf311d4964 Author: Igor Zinkovsky Date: Tue Jul 19 22:41:47 2011 -0700 Windows: make uv_pipe_bind fail for the pipe name already in-use commit c4611a4148558840732677fae01e8319c35c688c Author: Ben Noordhuis Date: Thu Jul 21 03:31:32 2011 +0200 uv-unix: move stream->fd >= 0 asserts out of connection error path on_connect callback must be invoked even if the connect() syscall fails. stream->fd == -1 in that case. commit 5f12c30f734f166b443603202e3e439df2dc9d10 Author: Bert Belder Date: Thu Jul 21 03:28:40 2011 +0200 Correct idle_starvation test commit d9612fe0e75884451264ee1a507516588db4e153 Author: Bert Belder Date: Thu Jul 21 03:27:43 2011 +0200 More changes related to uv_close returning void commit b931c9313f9d80025aea422d43beee9bffc4f346 Author: Ryan Dahl Date: Wed Jul 20 18:03:08 2011 -0700 uv_close returns void commit f0c20aa9132fb7c2eb699661d21d2e6bc7265c5a Author: Bert Belder Date: Thu Jul 21 02:51:26 2011 +0200 Test: active idle watcher should not block other events commit afc998759f332db4aaadd2775e17e39b7315df60 Author: Igor Zinkovsky Date: Thu Jul 21 02:00:12 2011 +0200 Add uv_pipe_bind tests commit 2765509430d3378740b8864161d6c5df67d095b9 Author: Igor Zinkovsky Date: Mon Jul 18 19:16:28 2011 -0700 Windows: Use PeekNamedPipe instead of non-blocking reads to peek at the pipe buffer commit 66f936bfd766b349e374c02a3b7ce5d798edab0f Author: Ben Noordhuis Date: Thu Jul 21 02:13:02 2011 +0200 uv-unix: call uv__accept() instead of accept() uv__accept() puts the socket in non-blocking close-on-exec mode, accept() by itself does not. Solves the case of the mysteriously hanging HTTP benchmarks. commit 332bbecd19725ca4aeb66a9ab0efc4b1d9863d70 Author: Ben Noordhuis Date: Wed Jul 20 23:06:44 2011 +0200 uv-unix: defer uv_pipe_connect callback to next tick commit 685c083c792c651b92629e60e90ddde672c3f287 Author: Ryan Dahl Date: Wed Jul 20 12:18:07 2011 -0700 Only sleep on 'make bench' not on 'make test' commit b13a446d6c7fc5a7b40e75f76a7dfc2c9a175f3c Author: Ryan Dahl Date: Wed Jul 20 12:14:15 2011 -0700 Test for sync tcp and pipe connections commit eb5e00fd1be5e5efafcb03f080205a827e95ba26 Author: Ben Noordhuis Date: Wed Jul 20 21:11:52 2011 +0200 runner: give helpers a chance to clean up after the test. Fixes #50. commit 6c8acb0ed1b7592bb830d952d225c31e42e279d3 Author: Ben Noordhuis Date: Wed Jul 20 21:00:59 2011 +0200 task: flush stderr after printing commit b38ba046980dd0904907282f5b1b72517b48f05d Author: Ryan Dahl Date: Wed Jul 20 11:53:09 2011 -0700 Fix benchmark output for ares and getaddrinfo commit abf854597b5a226743486c3c60a1c18c0db7df79 Author: Ryan Dahl Date: Wed Jul 20 11:43:55 2011 -0700 Don't output progress in 'make bench' Fixes #115. commit 1fda135ff21869fe24e95a154747722edd546aee Author: Ryan Dahl Date: Wed Jul 20 11:05:53 2011 -0700 understand EBADF commit eadfb1488470197d9073b5763986246a54d92703 Author: Ryan Dahl Date: Wed Jul 20 10:51:08 2011 -0700 unix: uv_write shouldn't assert fd >= 0 commit ce5eb6d85a573985aef5e9e2bfe8bba145163189 Author: Ben Noordhuis Date: Wed Jul 20 17:58:27 2011 +0200 config-unix: drop --std=c89 on cygwin, hides CLOCK_MONOTONIC. Fixes #112. commit e6075842e8549d64267bbadfea0a7485909ba639 Author: Ben Noordhuis Date: Wed Jul 20 01:14:17 2011 +0200 uv-unix: in uv_pipe_init: zero the _whole_ uv_pipe_t struct. commit a24d6e4bd8172dc09ebab0eb447845fb5667fc7f Author: Ryan Dahl Date: Tue Jul 19 09:35:09 2011 -0700 new uv_req_t sizes in benchmark-sizes commit ca3cfbae742bc0c87632374bd8542cb467512692 Author: Bert Belder Date: Tue Jul 19 17:32:43 2011 +0200 Windows: use low-res event loop clock. For much better performance. Closes #88. commit 86f1ca90e53883d8a3501c4df4af7be9e4f7b4f9 Author: Bert Belder Date: Tue Jul 19 14:56:23 2011 +0200 Windows: implement uv_hrtime() commit 3d2d97dbaedb572a51a22fe0c9f60b58ebdea688 Author: Bert Belder Date: Tue Jul 19 14:59:46 2011 +0200 Make test-hrtime a little better commit cd0dcce98ca4adfc69489a7d573cf9702c84126d Author: Bert Belder Date: Tue Jul 19 14:55:15 2011 +0200 Windows: use _strdup instead of strdup commit 96f2ef6bc629d64bb919d9ac24658cacc3b45a39 Author: Bert Belder Date: Tue Jul 19 14:54:23 2011 +0200 Make test-getsockname compile with msvc commit 8c4a097bc91d96861198d655ee03671095e296fb Author: Bert Belder Date: Tue Jul 19 14:53:59 2011 +0200 Windows: make clean deletes object files in src/win commit c2ad51e39f5e311facc056b15ed1bf94307aca01 Author: Ben Noordhuis Date: Tue Jul 19 13:46:03 2011 +0200 test-bind-error: fix 'control reaches end of non-void function' commit 7cc527997ff7809bd75e67132b8103b429299b84 Author: Ben Noordhuis Date: Tue Jul 19 13:41:30 2011 +0200 uv-common: fix 'initialization discards qualifiers from pointer target type' commit 3207f8ae40400ced95c47d4a023d0f60ad9be332 Author: Ben Noordhuis Date: Tue Jul 19 13:47:12 2011 +0200 uv-unix: fix 'passing argument 1 of ‘uv__stream_open’ from incompatible pointer type' commit c0d4669f871a2e91d778569f61215c76ed1f36ba Author: Ben Noordhuis Date: Tue Jul 19 13:50:49 2011 +0200 uv-unix: fix 'implicit declaration of function ‘accept4’' commit d4563a197a38ff996342b7c8bcadb89d9dce4a41 Author: Ryan Dahl Date: Tue Jul 19 02:40:34 2011 -0700 Allow and test for lazy uv_tcp_listen commit 3a91232f6602fa74a70a92d5f4a03ed0bf8ff891 Author: Bert Belder Date: Tue Jul 19 03:47:30 2011 +0200 Split up uv-win.c commit e909b9549128c5c2b23ab7cb0a42010d7eef9ec6 Author: Bert Belder Date: Tue Jul 19 03:32:37 2011 +0200 Add MinGW makefiles to VS project commit 1a1cd6d1f5e71ee9dba5e398451115465b20054b Author: Bert Belder Date: Tue Jul 19 03:31:14 2011 +0200 Enable link-time code generation for msvc commit 07b49ce59a8bccefecbcbcbba14986a6c97fa510 Author: Ryan Dahl Date: Mon Jul 18 13:50:01 2011 -0700 add uv_ip4_name and uv_ip6_name commit 4eff34da437387846ee65a650de3bee7c6913f81 Author: Ben Noordhuis Date: Tue Jul 19 00:58:02 2011 +0200 uv-unix: pipes API implementation Based on UNIX sockets to avoid the vagaries of FIFOs in asynchronous mode. Currently unlinks stale sockets before binding and cleans them up again after shutdown. commit 4d31f838b0b33d5e4770445a787134fb703d38cf Author: Igor Zinkovsky Date: Mon Jul 18 12:29:24 2011 -0700 Windows: handle ERROR_PIPE_BUSY in uv_pipe_connect commit c1bddb9677969088f21da8f6bfe3c132adffc9c9 Author: Bert Belder Date: Sat Jul 16 00:33:31 2011 +0200 Stop g++ from complaining about anonymous struct usage commit d56af313ee00025b9c86895e80559c9c33a186cb Author: Bert Belder Date: Fri Jul 15 20:25:42 2011 +0200 Revert "uv_win: uv_pipe_connect should return -1 on error" This reverts commit 7b4607348a58013e0dd4dfb70d2347b0269ce178. commit 1be48f12a0e2ef6241b07d1d207693aaedcb3ffa Author: Shigeki Ohtsu Date: Fri Jul 15 12:38:45 2011 +0900 ev: define HAVE_SYNC_FILE_RANGE if kernel >= 2.6.17 *and* glibc version >= 2.6 commit d540872107b67b27ec0e45b6cafab79ab5b53bdd Author: Henry Rawas Date: Thu Jul 14 17:33:43 2011 -0700 uv-win: allow listen on unbound tcp handle commit 7b4607348a58013e0dd4dfb70d2347b0269ce178 Author: Bert Belder Date: Fri Jul 15 02:38:35 2011 +0200 uv_win: uv_pipe_connect should return -1 on error commit 902dd567b1c7883d4384e09c228bf6838df6a6d5 Author: Bert Belder Date: Thu Jul 14 03:28:47 2011 +0200 Benchmarks use the improved request api commit 2f83928b6fd1078a9b09ab8ca7e1892c77eac212 Author: Bert Belder Date: Thu Jul 14 03:27:02 2011 +0200 Define union uv_any_req commit 0ea4c87f8bc3b48696404f7852b22f40b65d9d8b Author: Bert Belder Date: Thu Jul 14 03:01:44 2011 +0200 Windows implementation of new request API This changes uv-win to use the new uv_req subclasses. It gets rid of the uv_req.flags field. There used to be only request flag (UV_REQ_PENDING), and it was mostly obsolete; it only had a real purpose for internal uv_read requests. Now we'll use the UV_HANDLE_READ_PENDING flag on the handle instead. This patch also simplifies the accept logic for named pipes on windows. We no longer have a separate struct to store information about established connections. Instead we just carry over the windows HANDLE from the accept request to the client handle in uv_pipe_accept(). commit abe0b1ea614cc2eead503d5ca88d43aeb561563b Author: Ryan Dahl Date: Wed Jul 13 22:04:51 2011 +0200 Better request API Instead of uv_shutdown, uv_write, uv_connect taking raw uv_req_t we subclass uv_req_t into uv_shutdown_t, uv_write_t, and uv_connect_t. uv_req_init is removed. commit f5ff8694880624189c59102e9f0254dadc207b7c Author: Igor Zinkovsky Date: Wed Jul 13 12:35:16 2011 -0700 allocate windows pipe handles on demand commit 9aff11026b73995aca69a32d085a0cd0071a1977 Author: Ben Noordhuis Date: Thu Jul 14 03:33:56 2011 +0200 runner: bring back benchmark output commit 86341f8e02e524de40795736435bc3126ca0a5ad Author: Ben Noordhuis Date: Thu Jul 14 03:32:19 2011 +0200 Makefile: disable test-% and bench-% targets Targets bench-% and test-% mess up dependency resolution, disable for now. commit 4c2d0545fc7ea295fc70f29e5bb1041286ff54e1 Author: Bert Belder Date: Thu Jul 14 02:52:19 2011 +0200 Whitespace fixes commit 4a6efee4ceed1d77a6c17e9a7c3e0e2dd9305c39 Author: Bert Belder Date: Thu Jul 14 02:44:53 2011 +0200 uv-win: get rid of unused variables commit a29b2099acdf93f51db7f78272e46e596182fe10 Author: Ben Noordhuis Date: Thu Jul 14 00:46:25 2011 +0200 Make it possible to run individual tests. Fixes #100. commit f142a4b60a072ea19df31e932f6651c49c6aefaa Author: Ben Noordhuis Date: Wed Jul 13 23:59:30 2011 +0200 uv-linux: remove unused variables commit b50105e49196fa508a474945ed068c9ef2bd9a4c Author: Ben Noordhuis Date: Wed Jul 13 23:49:22 2011 +0200 uv-unix: remove unused variable commit 932f0ad16bb87097edc17110ab093269687af241 Author: Ben Noordhuis Date: Wed Jul 13 23:46:15 2011 +0200 uv-linux: fix warning: implicit declaration of function ‘readlink’ commit f560f75a17348b67c7ade9c94ec0e5486cfb9780 Author: Ben Noordhuis Date: Wed Jul 13 23:44:25 2011 +0200 uv-unix: fix warning: control reaches end of non-void function commit e364dd15c1452d4627056dc29fa01e8758cbf3de Author: Ben Noordhuis Date: Wed Jul 13 23:21:29 2011 +0200 uv-unix: fix warning: no return statement in function returning non-void commit aad95b841e800b86e13b846e044a5de9c1f74564 Author: Ben Noordhuis Date: Wed Jul 13 23:03:55 2011 +0200 uv-unix: increment check_init counter in uv_check_init() commit 28650425e24bf17340989bed2933e656d738e766 Author: Bert Belder Date: Wed Jul 13 21:49:15 2011 +0200 uv-win: refactor request processing commit 9c19391536ae9108b0251d99139324bc487dd2c2 Author: Ben Noordhuis Date: Wed Jul 13 18:04:56 2011 +0200 test-ping-pong: cast callback to expected prototype. commit afc96b58c8b9032ee7512b7483c86079d43daeae Author: Ben Noordhuis Date: Wed Jul 13 18:03:44 2011 +0200 test-delayed-accept.c: fix type mismatch in comparison. commit 1a53b898473acd69948697dbf305b659d8eca870 Author: Ben Noordhuis Date: Wed Jul 13 18:01:25 2011 +0200 test-hrtime: fix printf() compiler warning. commit 0ebd2ce02d77f730dc966668562fc437f460cce9 Author: Ben Noordhuis Date: Wed Jul 13 17:59:51 2011 +0200 test-delayed-accept: remove unused variable. commit d7389e6f89c04e648b5616730dc3bf371962bcde Author: Ben Noordhuis Date: Wed Jul 13 17:59:33 2011 +0200 test-async: remove unused variable. commit 4829ad5d04b4be51239e51cf46331476240e9cbd Author: Ben Noordhuis Date: Wed Jul 13 17:56:12 2011 +0200 test-getsockname: fix function prototype, clean up unused variable. commit b4f1d58ab3a1f6969b8faae2a1cb19d44a30a0fb Author: Bert Belder Date: Wed Jul 13 16:40:04 2011 +0200 Add test-getsockname to msvs project commit 036d5db16f9672d96372efe4f90ed5a527161670 Author: Bert Belder Date: Wed Jul 13 16:39:54 2011 +0200 test-getsockname: minor cleanups commit 48eb98c4648e77cc3e8152993f04743a4e4a73e6 Author: Ben Noordhuis Date: Wed Jul 13 00:55:35 2011 +0200 unix: implement uv_getsockname() commit f852c517a1d53974f1e8817055553d00abd99778 Author: Ben Noordhuis Date: Wed Jul 13 00:12:30 2011 +0200 Change uv_pipe_*() prototypes from char* to const char*. commit 6a67b51b4ca205a6d6dc1cc6a417f1972663990d Author: Henry Rawas Date: Tue Jul 12 10:32:15 2011 -0700 fix uv_getsockname for listening socket commit 6b32ebc54f7427c074419afa36e054df4ee9d493 Author: Henry Rawas Date: Mon Jul 11 13:45:16 2011 -0700 uv_getsockname commit 2e49cc56d182c361cee7c8fa729fe66102216711 Author: Igor Zinkovsky Date: Mon Jul 11 15:24:35 2011 -0700 Rename uv_pipe_create to uv_pipe_bind. Fixes issue #97. commit 1a0e452de1247d4920c9e4e714814280fd3bd5ce Author: Ben Noordhuis Date: Mon Jul 11 03:00:18 2011 +0200 freebsd: add uv_hrtime(). commit cef595eedc8ce5d5aac9511e825b61168e5c3d0b Author: Ben Noordhuis Date: Mon Jul 11 02:58:51 2011 +0200 Fix indentation in src/uv-freebsd.c commit 33b1b7acb95894a9f083fe7c6cdb9c90130193a8 Author: Ben Noordhuis Date: Mon Jul 11 02:40:39 2011 +0200 Fix compiler errors on FreeBSD. Fixes #93. commit 8d3d4a4244648dd6703fd5e24a9b508ebc4a22e5 Author: Ben Noordhuis Date: Sun Jul 10 17:14:48 2011 +0200 Revert 9518ab65: Allow user to specify CC env var (CC=clang make) Conditional assignment (assign if not set) to CC and AR never works because their default values with GNU make are `cc` and `ar` respectively. Build with `make AR=your-ar CC=your-cc` if you want to override them. Fixes #89. commit e2b2df6d2bc00a59a5301fc9dd92ac471a920db9 Author: Ben Noordhuis Date: Sat Jul 9 02:49:18 2011 +0200 Fix alloc-after-close error, properly disarm uv_tcp_t handle. commit b6a6dae34f01814ad1d19f8ffcc3f77c234432f5 Author: Igor Zinkovsky Date: Fri Jul 1 17:54:17 2011 -0700 Named pipes implementation for Windows commit 5aa8c005ec28de2aa66d4cb457b596fdf37f5e44 Author: Bert Belder Date: Sat Jul 9 21:31:48 2011 +0200 Windows: call shutdown before closesocket to ensure graceful disconnect commit f7a3789ee714fea43ecb62edd1f0c5034674d6f7 Author: Ben Noordhuis Date: Sat Jul 9 01:25:39 2011 +0200 Remove zero-length buffers from the write queue. Zero-length buffers were written out but not removed, so the write loop never terminated. Fixes failing node.js test test/simple/test-http-1.0.js commit e14715582190e9a2ca444467b074141dcb21ebeb Author: Igor Zinkovsky Date: Fri Jul 8 11:49:04 2011 -0700 fix in uv_insert_pending_req to work with multiple requests commit ee599ec1141cc48f895de1f9d148033babdf9c2a Author: Robert Mustacchi Date: Thu Jul 7 23:41:27 2011 -0700 Fix Linux build commit 8287551b91f7520cef93339c650e65ea89556939 Author: Robert Mustacchi Date: Thu Jul 7 23:25:29 2011 -0700 Fix SunOS build commit 6d8c499e35f7addadf64642c3531a679fa0bd7a2 Author: Ryan Dahl Date: Thu Jul 7 22:26:48 2011 -0700 Don't export the private CPP symbols. commit 18fa8c0ecdfb3b526b1de7087db9afd399928c25 Author: Ryan Dahl Date: Thu Jul 7 21:55:01 2011 -0700 Move ev.h to include/ commit 8c00b369b40a98f23a4d7349344962dd6cb3cf56 Author: Robert Mustacchi Date: Thu Jul 7 18:25:52 2011 -0700 C99 compatibility. Get 99% of the way there for --std=c89 -pedantic for core files. Also cleans up follow up warnings and others in tests. commit 786789490e9bee35d7a8382076a80c5c214d75b6 Author: Robert Mustacchi Date: Thu Jul 7 18:18:24 2011 -0700 Clean target missing prefix for object files commit c946697e7c0b18e51367787838352746939f25d0 Author: Robert Mustacchi Date: Thu Jul 7 18:07:44 2011 -0700 C89 compatibility. This changes the libev constants to be the corresponding negative values. Without this the header file is not valid ISO C 89. This fix makes the uv header compile fine in a simple C 89 program. commit 341ecab2ef558909d28bf43c56bf42463f302d78 Author: Robert Mustacchi Date: Thu Jul 7 17:49:04 2011 -0700 Remove extra dereference on hints commit 1717d42165212cf89d18204a6e85bb50ab60d4f2 Author: Ben Noordhuis Date: Fri Jul 8 00:35:33 2011 +0200 read() and write() return ssize_t, not size_t. rv < 0 error checks were always false. commit a74f339d1729f3f9bb3b746bd07eefb39178e4a8 Author: Ben Noordhuis Date: Thu Jul 7 22:06:44 2011 +0200 Fix linux syscall detection. commit cb078479498e8e976ec52aecdce0abdc63843991 Author: Bert Belder Date: Thu Jul 7 18:09:05 2011 +0200 Remove obsolete file commit 81bb15feed871a3f7fc91ce608b378ce0a6f86bc Author: Bert Belder Date: Thu Jul 7 18:06:07 2011 +0200 Change msvc projects, more sanity in ares build config on windows commit 9518ab65949257384bf7e407d8502a6437fdda4b Author: Ryan Dahl Date: Thu Jul 7 08:32:29 2011 -0700 Allow user to specify CC env var (CC=clang make) commit ce8ff3031c36b069e1da42b0f3bf0373ca42f2a6 Author: Ryan Dahl Date: Wed Jul 6 15:28:18 2011 -0700 src/ and include/ directories Helps #71 but does not update the MSVC files. commit 2b2980e86a46c3e62676c82c06600d09d6aaa18b Author: Ben Noordhuis Date: Wed Jul 6 22:39:20 2011 -0700 Detect availability of newish linux syscalls by kernel version. commit dc1d55dfec29d43b5446d97d545cb819b8284e8a Author: Paul Querna Date: Wed Jul 6 21:23:06 2011 -0700 If we are only writing or reading a single iovec, use the non-v versions of the calls, so we are hitting the exact same syscalls as non-uv, and it makes dtruss output easier to read. commit a4b05abce6431b606ff958d61ab03d022e940711 Author: Henry Rawas Date: Wed Jul 6 17:01:20 2011 -0700 optional IPv6 for echo-server commit afff93495368250cf7a081830f93049939955b56 Author: Henry Rawas Date: Wed Jul 6 16:37:18 2011 -0700 detect ipv6 support commit 9a5b47d915245c3974478969f20071ce064db5ca Author: Ben Noordhuis Date: Wed Jul 6 22:41:11 2011 +0200 uv_sleep() takes milliseconds, usleep() microseconds. Convert argument. commit 66ef54efff6e97b7a05a50f7543423110ca6f6b8 Author: Ryan Dahl Date: Wed Jul 6 13:47:35 2011 -0700 unix: implement uv_connect6 commit 0bf38570e8c7837bd830388f7b57f138aebb3395 Author: Paul Querna Date: Tue Jul 5 20:45:50 2011 -0700 unix: Don't malloc for each write commit 6c8d016fb4790fdccee188f47dec13d740eadcec Author: Bert Belder Date: Wed Jul 6 04:07:00 2011 +0200 Fix c-ares build with msvc commit 49baaa4731c31e4bef58c98b31a27914f666d3b0 Author: Bert Belder Date: Wed Jul 6 02:50:50 2011 +0200 Add cygwin support Fails a few tests commit 26880b0c908cefc037f5b0fb8f32222bdb3ee042 Author: Henry Rawas Date: Fri Jul 1 17:04:05 2011 -0700 win: IPv6 connect commit 736dd8bfb3522a0e4597a942676ba063391c4be6 Author: Ryan Dahl Date: Mon Jul 4 10:47:24 2011 -0700 Remove -Wno-variadic-macros Helps #63. Fixes #80. commit ba1c38f2d8d6146f0a23fea47553dfd314605037 Author: Henry Rawas Date: Fri Jul 1 10:58:01 2011 -0700 fix mingw for eio commit 35e1c6267650740d30a62e7d44bc27890aaf8d47 Author: Ryan Dahl Date: Fri Jul 1 12:29:46 2011 -0400 Fix hrtime on linux commit 09bd08ed976652b8c09a02ed941b2fc92483e141 Author: Ben Noordhuis Date: Fri Jul 1 18:19:18 2011 +0200 Assert that uv_hrtime() actually sleeps for several microseconds. commit 17ee7732c333d046c50c391afcdc3b64ebf177c0 Author: Ryan Dahl Date: Fri Jul 1 11:52:51 2011 -0400 unix: All objects should be compiled with _LARGEFILE_SOURCE and _FILE_OFFSET_BITS=64 Fixes uv_getaddrinfo on linux commit 0259b67db9f872c9a713501521aed1b5e57b297a Author: Ryan Dahl Date: Fri Jul 1 08:10:18 2011 -0700 unix: Fix uv_getaddrinfo() commit 8cd3d71229730233b38343156e4c1036a4df9a78 Author: Ryan Dahl Date: Fri Jul 1 09:51:24 2011 -0400 fix linux build commit 320057d5889c2bb970b491d798b2ea8399e952c6 Author: Igor Zinkovsky Date: Thu Jun 30 17:39:27 2011 -0700 uv_stream_t commit 9d84f92613ddba07e90f84aa033fcee89ef011b8 Author: Henry Rawas Date: Wed Jun 29 14:05:47 2011 -0700 poll instead of ares timeout commit 08809b2d049fb75a85b495867e104d2fc1013500 Author: Ryan Dahl Date: Thu Jun 30 13:04:11 2011 -0700 unix: initial attempt at uv_getaddrinfo commit 65b772a067107533fbec25eab1afe8f102536a7a Author: Ryan Dahl Date: Thu Jun 30 12:04:22 2011 -0700 unix: remove unnecessary define commit bde908f565f9b90f6a18a6ce266cc0c144fd4acb Author: Ryan Dahl Date: Thu Jun 30 11:28:19 2011 -0700 unix: Include libeio commit 39da51b20f0842f6cf1218839f97eaef81cd7bb3 Author: Ryan Dahl Date: Wed Jun 29 19:50:49 2011 +0200 Remove WIN32_LEAN_AND_MEAN commit 8fd916d6ddc9c7fd0e3e8e668efbc2d782e8e742 Author: Henry Rawas Date: Wed Jun 29 10:22:48 2011 -0700 fix mingw build commit 5b7cfe4bd47f48778046d72be5538c2d2f80ccd0 Author: Ryan Dahl Date: Tue Jun 28 21:11:33 2011 +0200 unbreak 'make bench' commit 796621c773a92e319e36b2a8127fd082e989c01a Author: Ryan Dahl Date: Tue Jun 28 21:08:17 2011 +0200 Implement c-ares on unix. commit 5785961893fab66c520476fd6a2f84c32d45500e Author: Ryan Dahl Date: Tue Jun 28 17:02:50 2011 +0200 uv_ares utility methods put into new uv-common.c file commit fa514948fc4880f5918ae0f4244345142a761fe5 Author: Ryan Dahl Date: Tue Jun 28 14:30:10 2011 +0200 Move around uv_hrtime in the header commit 7b56134f730888e773114acdf2185ac02e59e656 Author: Ryan Dahl Date: Tue Jun 28 14:26:18 2011 +0200 Rename uv_get_hrtime, uv_get_exepath to uv_hrtime, uv_exepath commit ac005f0a045ffa4776777e215b911ca8e93c7b5a Author: Ryan Dahl Date: Tue Jun 28 14:11:47 2011 +0200 Add Matt to the authors commit caf1a991158f04a0a1aff685b84bb8b55f665d68 Author: Matt Stevens Date: Sun Jun 26 22:34:04 2011 -0600 IPv6 support Fixes #70. Fixes #19. commit f9b9bb44bd6e2b74729b5d1ff481adf4213e9a0b Author: Ryan Dahl Date: Tue Jun 28 13:31:32 2011 +0200 Remove __CARES_BUILD_H CPP symbols commit d743cd4884468f5b62c0247352c662b212ee3731 Author: Bert Belder Date: Tue Jun 28 13:29:02 2011 +0200 Followup for ares_build.h removal commit ad9356fb04bedd19f3a419c3bfaf376644c6baa2 Author: Bert Belder Date: Tue Jun 28 13:06:23 2011 +0200 Remove unused variable commit 6049387cc6a7fd6807ddf4af978c6b043be359b5 Author: Ryan Dahl Date: Tue Jun 28 13:13:39 2011 +0200 ares.h should not depend on ares_build.h A dirty dirty patch but c-ares's header rules are way too annoying for a static library. commit e78275c64ba41cea60e90ca57a95a0981201ab25 Author: Ryan Dahl Date: Mon Jun 27 20:14:26 2011 +0200 Add rm to authors commit 28620a4f55c48ffc3a36168ea243b1f1ef699649 Author: Bert Belder Date: Mon Jun 27 18:21:59 2011 +0200 Windows: No configure build commit daa499c5675c84d59d62491bdde673a58346ba0b Author: Ryan Dahl Date: Mon Jun 27 13:22:10 2011 +0200 unix: Remove c-ares and libev configure scripts Instead let's be a bit more clever. commit 8801925b41bccadbf87c02d41df5a402d5848f2f Author: Bert Belder Date: Sat Jun 25 17:35:59 2011 +0200 Un-break the unix build commit b0ea919254adf169e72dffb58a203b188b7834bb Author: Bert Belder Date: Sat Jun 25 16:20:16 2011 +0200 Igor, welcome back commit fc059832f6aecc3a80c35a10d47dd428573c13f0 Author: Bert Belder Date: Sat Jun 25 16:39:35 2011 +0200 Add todo item for making ares handles private commit 21969b7a6fbcf0f3c01e2af8bcee783f1bac5911 Author: Bert Belder Date: Sat Jun 25 16:07:57 2011 +0200 benchmark-getaddrinfo: resolve more, use less concurrency commit 16f471fa2e9c7d25dca7507cb55b88c623593a88 Author: Bert Belder Date: Sat Jun 25 15:33:52 2011 +0200 Separate uv_getaddrinfo tests commit 631a9bb626e00beef5a03257c187f09da03e4c3b Author: Bert Belder Date: Sat Jun 25 15:32:27 2011 +0200 uv_getaddrinfo: return int commit f04abc966ab6fcae485be53d2f812c4507374063 Author: Bert Belder Date: Sat Jun 25 17:36:29 2011 +0200 Avoid type warnings in benchmark-sizes commit 5115d446c602e24b5390521da1b00b44d29c3257 Author: Bert Belder Date: Sat Jun 25 12:35:49 2011 +0200 Misc. cleanups commit 9c00849c9bc5510284ab2e35a0270dbea7c7c94a Author: Henry Rawas Date: Sat Jun 25 11:42:07 2011 +0200 Winsock extension call conventions commit 295fa6f538e7975e44c2c495781c7b0fc308d6b1 Author: Henry Rawas Date: Thu Jun 23 01:29:50 2011 +0200 Windows: getaddrinfo support commit af15cbe6e936f8e3974af5b97133bd76a7545485 Author: Ryan Dahl Date: Wed Jun 22 14:04:06 2011 +0200 Handle EAGAIN in some of the read_cb tests commit 9b49e4c3597e5745dd9dfa96078f9ece4d0b713a Author: Ryan Dahl Date: Wed Jun 22 13:43:10 2011 +0200 unix: sync writes Fixes #64. commit 4aeee38484b5a715ab8fc7f124f7ff2b601ca57e Author: Henry Rawas Date: Mon Jun 20 09:41:57 2011 -0700 c-ares integration on windows commit 31516fa150b9cde16f53c0ad3dd02542bd1ff5e8 Author: Robert Mustacchi Date: Mon Jun 20 23:24:13 2011 -0700 Fixes #49. test-get-currentexe fails on solaris commit 6eefdaf966cd328a73d918ccbfffd4f6f6a77126 Author: Robert Mustacchi Date: Sun Jun 19 13:59:28 2011 +0200 Fixes #61. Failure in test-hrtime commit 4eb06151bddd73b8d82b81202b98c8b216c0ee61 Author: Bert Belder Date: Fri Jun 17 18:39:18 2011 +0200 Split up uv_loop type commit debae0377105257a429a48824a26bc16e81a33d4 Author: Bert Belder Date: Fri Jun 17 22:37:12 2011 +0200 Declare variables first commit 608917a00f712292b6b00b87f6ec81cc5158cc05 Author: Bert Belder Date: Fri Jun 17 18:41:30 2011 +0200 Add test-hrtime to vs solution commit b7b7df090ca285e53eb51bf518c4e50648765964 Author: Ryan Dahl Date: Fri Jun 17 18:56:43 2011 +0200 Move uv_ip4_addr to uv-common.c commit 8218146a1cc0da04a4b62ec5a8396947da2c466a Author: Ryan Dahl Date: Fri Jun 17 18:53:54 2011 +0200 uv_ip4_addr: Clear the struct sockaddr_in before using commit c4c022fb0c28d5ed62b1a7b22eddce1e072e2866 Author: Ryan Dahl Date: Fri Jun 17 13:13:18 2011 +0200 move uv_get_exepath() to platform files commit d88049161629757a90778ce2b017c6d1becb07ad Author: Ben Noordhuis Date: Thu Jun 16 23:10:47 2011 +0200 Document that writes are in-order. Fixes #59. commit 24baf360753770b355b98c9ea39b58e5e3e2f329 Author: Ryan Dahl Date: Fri Jun 17 11:47:35 2011 +0200 Add test for uv_get_hrtime commit cf45384a93d2d2d5b88579f714e3cf07c17dd498 Author: Robert Mustacchi Date: Thu Jun 16 20:27:52 2011 -0700 Add high-resolution timestamp support commit afa3600aaaeec8eba2f98cf4facccd2ffb986ba6 Author: Henry Rawas Date: Thu Jun 16 11:48:55 2011 -0700 Make c-ares build on windows commit 3b83125691376dc7aa61dc39b388f0668b70651a Author: Bert Belder Date: Thu Jun 16 02:30:44 2011 +0200 Fix c-ares build on windows commit 1987728fa84f0869ab82d32e374d4be97889207c Author: Ben Noordhuis Date: Mon Jun 13 23:18:15 2011 +0200 uv_ip4_addr() should take a const char*, not a mutable char*. commit 49a2ed61204baecb10b616d1a738a922cb10d4b3 Author: Ryan Dahl Date: Wed Jun 15 13:52:01 2011 +0200 c-ares unix commit dae2c0979633a4f2670691421fbc15899910e7e2 Author: Bert Belder Date: Wed Jun 15 00:41:27 2011 +0200 Compile c-ares into libuv commit a9838a1cbb7607b6446ac23ef228bc5e1cfd667b Author: Henry Rawas Date: Tue Jun 7 12:09:13 2011 -0700 Land c-ares in libuv commit 0a73e714ce9d95c5385c1265471a396e9e794aea Author: Bert Belder Date: Tue Jun 14 20:28:09 2011 +0200 Correct ssize_t detection commit 2ec77b363b9500e492fa1c080b7b83a232742f56 Author: Ryan Dahl Date: Tue Jun 14 11:58:04 2011 +0200 Add docs about calling uv_accept commit ff8485ac115a87774fa0e0b22d7aa16ebdbfea66 Author: Bert Belder Date: Mon Jun 13 12:31:03 2011 -0700 Add Ben to AUTHORS commit 043d3860d9ca8d769af845b41bbc5aba2d899caa Author: Ben Noordhuis Date: Mon Jun 13 21:18:23 2011 +0200 Silence g++ warning `type qualifiers ignored on function return type`. Closes #54 commit 2b5707d834a6b85b8e589ac04cb61a6db2dab94b Author: Ryan Dahl Date: Fri Jun 10 18:15:10 2011 +0200 Correct uv_counter API commit 3b3df30374b9c222a5a401779e84306988e76f49 Author: Bert Belder Date: Sun Jun 12 14:53:07 2011 +0200 Windows: uv_tcp_init before uv_accept commit ebc73022f8276941d004e7e84a239b6389cdf34f Author: Bert Belder Date: Sun Jun 12 14:52:20 2011 +0200 Define ssize_t if necessary commit aabe56b68019f55574b2ff770eaf687cb5f093a0 Author: Ryan Dahl Date: Thu Jun 9 22:38:41 2011 +0200 uv_tcp_init() must be called before uv_accept() Windows broken. commit 9400c3ffff856967a988c326129988a908256280 Author: Ryan Dahl Date: Thu Jun 9 23:08:28 2011 +0200 Add some counters for testing commit 6d07c0d52277585090cb0aa52abc7e8fdcb9713d Author: Ryan Dahl Date: Thu Jun 9 13:31:46 2011 +0200 benchmarks should print helper output too commit b3863c8051fbde30889f5b3720e2b271da764365 Author: Ryan Dahl Date: Thu Jun 9 13:10:54 2011 +0200 nread should have type ssize_t commit b168bd1f70c966236aef7c8f9f561d3984ff162b Author: Bert Belder Date: Wed Jun 8 22:01:42 2011 +0200 Windows: do not report read/listen errors after uv_close commit 4809de9cf2b3cb62cb904b61e4be41f1c5a10a71 Author: Bert Belder Date: Wed Jun 8 21:59:49 2011 +0200 Misc. cleanups commit 9b1123b219ddbb18b3f172ead4682c1022df8ca9 Author: Bert Belder Date: Wed Jun 8 21:59:05 2011 +0200 Use proper types instead of void pointers to store loop callbacks commit cd6ceb0ef41fe8b9106b02deaeea51d2bd972e91 Author: Bert Belder Date: Wed Jun 8 21:56:00 2011 +0200 Spaces, no tabs please commit b2df6d9a99f940720975d478813991c2fdae0075 Author: Ryan Dahl Date: Wed Jun 8 15:18:03 2011 +0200 Increase racy sleep to make some tests pass commit e04cc71e1a7d7e22db6a847437e3017a98fcfd5a Author: Ryan Dahl Date: Wed Jun 8 15:13:02 2011 +0200 Remove EV_MULTIPLICITY=0 for ease of use commit 2323b31856239e8e842bae3ace485085763f2472 Author: Ryan Dahl Date: Wed Jun 8 14:56:31 2011 +0200 Remove -pedantic flag for now (too annoying) commit 04b6aaeb4415fd689353a12298274d81afa21efd Author: Ryan Dahl Date: Wed Jun 8 12:02:42 2011 +0200 API Change: Move close_cb to uv_close from init functions commit 7db9629f8716fbdaea446920e708f9c79766b264 Author: Ryan Dahl Date: Wed Jun 8 11:01:41 2011 +0200 API Change: Remove data parameters from init functions commit e58a1abff02d7bacf89a56de9050e27690a97bc5 Author: Bert Belder Date: Tue Jun 7 18:07:28 2011 +0200 Refactor request handling on Windows - keep a list of completed reqs to be returned. - do not implicitly close a socket after error or eof+shutdown. commit cfca30433fe7f66d55cb78a46f102cddf1b15b63 Author: Bert Belder Date: Tue Jun 7 18:01:00 2011 +0200 API change: report accept errors to connection_cb commit fbd2d7a194538bfbb15edd36ecc922d2f9ac2e70 Author: Bert Belder Date: Tue Jun 7 18:09:25 2011 +0200 Misc. cleanups commit 3ee60b7351452b45188dd5514e39ba763101a245 Author: Ryan Dahl Date: Tue Jun 7 14:23:40 2011 +0200 test runner separator should be paired with progress bar commit 8a0742910c8255154e17953c13dc8212edf33a79 Author: Ryan Dahl Date: Tue Jun 7 14:12:08 2011 +0200 accept_cb -> connection_cb commit a7494416e93c055936751986f7916b894f5b83c5 Author: Ryan Dahl Date: Tue Jun 7 10:06:12 2011 +0200 Add -Wno-variadic-macros as it's apparently okay in MSVC commit a1b9be16ca5baf15cb4e6a8a13c63089725285f9 Author: Ryan Dahl Date: Tue Jun 7 10:02:08 2011 +0200 Use -pedantic flag to avoid breaking Windows build commit ed623b3a71b73be05e397c5d7215d96baeca0370 Author: Bert Belder Date: Tue Jun 7 00:44:26 2011 +0200 Add test-shutdown-eof to msvc project commit aa59c81d607a6ea2e219c946e74230cd1eaafc2d Author: Bert Belder Date: Tue Jun 7 00:35:18 2011 +0200 Declare variables first please commit 3d9b965aee87444ea9ddddbf1ff03407a5f90ea1 Author: Bert Belder Date: Tue Jun 7 00:34:34 2011 +0200 Whitespace error commit acbd16806952f731824ac7651a963a370bc0438b Author: Ryan Dahl Date: Thu Jun 2 11:31:42 2011 +0200 Add test to assert behavior of uv_tcp_t after shutdown Handles should *never* call the close callback without the user having first issued a uv_close() command. This test is broken on windows. See #52. commit 903c07bf98ce0158d209c90158282f44cc1ba47c Author: Ryan Dahl Date: Thu Jun 2 09:19:56 2011 +0200 API Change: uv_close only called by user - never automatically Add test that failing on_connect callback does not trigger on_close. commit 7770b1a1f6247c81d2debd7ee28d8d20ac4f3d83 Author: Ryan Dahl Date: Wed Jun 1 21:04:01 2011 -0700 API change: alloc_cb moved to uv_read_start() Fixes #47. commit 6b0779159812fd0ec710326bace6facf51eabcfb Author: Ryan Dahl Date: Wed Jun 1 20:43:40 2011 -0700 API Change: Pass sockaddr_in by value instead of reference commit 11a4ad50c8e9c618525249cdfeed025683d41408 Author: Ryan Dahl Date: Wed Jun 1 18:19:47 2011 -0700 Separate out uv_handle_t into different types Fixes #4 commit fb5262abdc7dd7e53c6c0ea981c3b8c0c8c5212e Author: Vanilla Hsu Date: Fri Jun 3 06:45:55 2011 +0200 Support FreeBSD commit ee712eba36f4b28bd1d19566bda7a4add3826367 Author: Ryan Dahl Date: Sat May 28 18:52:33 2011 -0700 more desired api commit 5be0fe216868c310bb84aeef9772493771392730 Author: Ryan Dahl Date: Sat May 28 16:06:29 2011 -0700 more desired api commit 55de5e324269841b152bd07686e55e46f96b8c80 Author: Ryan Dahl Date: Sat May 28 15:40:10 2011 -0700 improve design doc commit 18f54bef3130d640887cc15a01b1f0cee0af42cb Author: Ryan Dahl Date: Sat May 28 01:47:47 2011 -0700 Add doc on desired-api commit be1bfe6c4c5cd7079ba7971d4835baef01f9a6eb Author: Bert Belder Date: Fri May 27 22:04:14 2011 +0200 Revert AUTHORS update This reverts commit 9467a923903be1cce2e60bfb95192cf3fa93dc51. commit d5b3ae0f5824a9230eca88450328dfa1a75f78ce Author: Bert Belder Date: Fri May 27 19:41:34 2011 +0200 usleep -> uv_sleep commit 982a620f1cefbc5ded030a963b6d7e3468a949ea Author: Ryan Dahl Date: Fri May 27 02:01:25 2011 -0700 Echo server gracefully dies on 'Q' Allows for better clean up during tests. commit e28c0bb60bfc47d116fcd8f479e628c8f3f29d19 Author: Ryan Dahl Date: Fri May 27 01:47:04 2011 -0700 unix: Use fork instead of vfork in runner. commit 7e34b7bdfc451ade6907777eeb3ad3e073ac69bb Author: Ryan Dahl Date: Fri May 27 01:47:30 2011 -0700 runner: insert little delay after starting helpers commit f0ebf0c7fc060cf85d18b856df03a12a34eb64b5 Author: Ryan Dahl Date: Fri May 27 01:32:38 2011 -0700 Split pump bench into two processes. And add a pump test with 1 client. commit e3923b76b455f957915f9b8edf786a3de6d17b2c Author: Ryan Dahl Date: Thu May 26 22:50:38 2011 -0700 UNIX: Bad was_active check in uv_check_start() commit 143a09a33d21a77b1edc0a87938bd2e87821af5e Author: Bert Belder Date: Thu May 26 02:09:18 2011 +0200 Move variable declarations to top commit 9467a923903be1cce2e60bfb95192cf3fa93dc51 Author: Bert Belder Date: Tue May 24 14:34:55 2011 -0700 Add Igor to AUTHORS commit 802d78e6b18bb50e0e0f1fa066439faa5e578fd6 Author: Igor Zinkovsky Date: Tue May 24 10:29:08 2011 -0700 Adds handling of unicode paths to uv_get_exepath on windows commit 9fc8a7f1670e6b6f223e48ebf390dd345a888007 Author: Igor Zinkovsky Date: Fri May 20 18:05:37 2011 -0700 Adds uv_get_exepath API Only works on Linux, Mac, Windows currently. commit d91b5012bd32b60f1a0f35241f7ac45c147f0c8a Author: Bert Belder Date: Mon May 23 23:56:57 2011 +0200 Test the right thing commit 54c95f749b10102aa5d4d9126ef706e864b1a0d7 Author: Bert Belder Date: Mon May 23 23:53:57 2011 +0200 Unix: unbreak uv_is_active We need a test for it. commit 40f0ad6d364cff76adaf1c7f182b1dc939f36617 Author: Ryan Dahl Date: Sun May 22 12:26:48 2011 -0700 unix: fix ref count tests commit 1352c72e35b49a32964f694e535abccbd31b847b Author: Ryan Dahl Date: Fri May 20 08:22:19 2011 -0700 Add reference count tests Broken on UNIX. commit c8603a74621d7151c087afdafe23b79ee0a7832e Author: Ryan Dahl Date: Thu May 19 15:03:21 2011 -0700 Include stddef.h for NULL commit 0177751ff5782dd96e9a634202a2ced219fac41b Author: Bert Belder Date: Thu May 19 23:04:54 2011 +0200 Add uv-common.c, move uv_err_name() there commit 9c2dd6bea970b2376696aba070bdfc2873843cfb Author: Ryan Dahl Date: Wed May 18 22:23:17 2011 -0700 timer tests to work on unix commit 103099e175580328b6ab1be8f3f671656d36dd51 Author: Ryan Dahl Date: Wed May 18 21:18:45 2011 -0700 pump: connect to 127.0.0.1 instead of 0.0.0.0 commit ccc2784153009e139de9551cb4c734259946c488 Author: Bert Belder Date: Thu May 19 02:28:50 2011 +0200 Avoid printf type warning in test-timer-again commit 0fa733e0eaf041402bdb614d97e4cabf79357837 Author: Bert Belder Date: Thu May 19 02:02:39 2011 +0200 Forgot one assert in test-timer-again commit 78c2930e252b2f38781a21dc47a606d0630366c4 Author: Bert Belder Date: Thu May 19 01:58:07 2011 +0200 Test for uv_timer_again ,~get_repeat, ~set_repeat commit fd8ee879e2d8585f0f75d0279f2c6a6f0c81ba17 Author: Bert Belder Date: Thu May 19 01:55:21 2011 +0200 Windows: make uv_is_active work for timers commit 3d0332ed6ec938c0425d794ab7f19e0c4c002937 Author: Ryan Dahl Date: Wed May 18 13:24:36 2011 -0700 unix: uv_timer_get, uv_set_repeat Fixes #43 commit 9679e333c60162b36898446a5bbc080f8057bccf Author: Bert Belder Date: Wed May 18 21:54:16 2011 +0200 uv_timer api extension commit bfb4e5e486f2f9c8bbcabb218446e2ba70ab734e Author: Ryan Dahl Date: Tue May 17 14:56:24 2011 -0700 Override default backend for OSX commit 02b43d4ce8b9a40e438704a3b2a384d83abb27e7 Author: Ryan Dahl Date: Mon May 16 21:07:02 2011 -0700 add uv_err_tostr commit e13a02263c8e18a71c8f13b9cbda7bb627e565c4 Author: Bert Belder Date: Tue May 17 03:54:07 2011 +0200 uv_timer_again for windows commit 452681fbe9efca463873a6d025cc9b0b7e0b27fb Author: Ryan Dahl Date: Mon May 16 17:55:04 2011 -0700 fix port conflict commit c41b7143c78b3215972799d3e77b4ae65394d065 Author: Bert Belder Date: Tue May 17 02:27:22 2011 +0200 Fix after merge commit c28fe6e17047d80afb921fd65c511b3ac39c89a7 Author: Bert Belder Date: Tue May 17 02:24:58 2011 +0200 Implement uv_timer for windows commit a730165312317b8659c51ec3eff5c22582092bc1 Author: Bert Belder Date: Tue May 17 02:23:27 2011 +0200 UV_TIMER is a handle type now, not a req type commit 1676e4abcca47fd8b0c4b0e0a95594091277e285 Author: Bert Belder Date: Tue May 17 02:22:47 2011 +0200 Please, declare vars at the top commit 2aabd44d770d7d6e250c82c30bc009349293b00f Author: Ryan Dahl Date: Mon May 16 17:28:43 2011 -0700 unix: fix ref count for timer - unbreaks loop_handles test commit 816289ae8fd8239db04a2cd734a5ae2ff569ed8a Author: Ryan Dahl Date: Mon May 16 17:08:37 2011 -0700 unix: implement timers currently loop_handles is broken. commit b969809d20b883ce4b13ce5397214b6d45531e55 Author: Ryan Dahl Date: Mon May 16 16:26:54 2011 -0700 unix: stub out timer methods commit 810651e04c53d2c030afb91a6cc63299b9aa5891 Author: Bert Belder Date: Tue May 17 01:17:48 2011 +0200 Update tests & benchmarks to use the new timer api commit abd2d1cae433d46ac2cc5ffc7cec417f4189ce75 Author: Bert Belder Date: Mon May 16 23:49:17 2011 +0200 New timer api commit 899ebf2371c57004989b4a7d3feec9ed75c3d04b Author: Bert Belder Date: Mon May 16 21:46:07 2011 +0200 uv_is_active for *nix commit 2aefc18d3a03bff0a6f3a9746db9fb5fd998024c Author: Bert Belder Date: Mon May 16 21:40:07 2011 +0200 uv_is_active api and windows implementation commit 84a0e899b55ed5519235e77253760e1274c68535 Author: Bert Belder Date: Mon May 16 21:38:20 2011 +0200 Cleanups after oio -> uv rename commit 2b8812ffe15b6e25f890e7bc903ee9f8bd57c35a Author: Ryan Dahl Date: Fri May 13 07:15:02 2011 -0700 uv_buf -> uv_buf_t commit c6edabdba8f425f1e790e49fe0abb71c1f07a60e Author: Ryan Dahl Date: Fri May 13 00:47:10 2011 -0700 Changes to compile in Node commit d85168b2994e02c24c6b0a09b23c0dbe590767a1 Author: Ryan Dahl Date: Thu May 12 18:35:02 2011 -0700 Makefile munging Add EV_MULTIPLICITY=0 (until we add threads) commit d2653df01bc8e46440fcc9ccfa7817b951711265 Author: Ryan Dahl Date: Thu May 12 17:53:21 2011 -0700 Last but if oio renaming commit 2ef3c6c6320eb7845068fae8aadc4f7188dd1b9a Author: Ryan Dahl Date: Wed May 11 19:56:33 2011 -0700 oio -> uv commit b4e9d3c337b8bc9c3b641b2d57f1cb56a3d34f22 Author: Bert Belder Date: Tue May 10 16:21:12 2011 -0700 Only XP sp2 and up are supported commit 1925a091d8413127d4f6813792848004488f99d6 Author: Ryan Dahl Date: Tue May 10 00:44:47 2011 -0700 Only report read throughput from pump bench Generally they are the same anyway... commit bf86b2e273616a773a468662093c4c9c17568cb3 Author: Ryan Dahl Date: Tue May 10 00:42:18 2011 -0700 Run ping-pong bench for 5 secs commit 2f4e65a1b28b8911f1fe8f945d8b7dbb55bf3d91 Author: Ryan Dahl Date: Tue May 10 06:53:21 2011 +0000 Port to Solaris commit f0de01379f4ad27f2ab0b0e657ab67d7cc36bcbb Author: Ryan Dahl Date: Mon May 9 23:12:44 2011 -0700 Use argv[0] if we can't get_executable_path() commit 9f652d4729f2dce39e01acaba8b40061415dd8a4 Author: Ryan Dahl Date: Mon May 9 21:38:03 2011 -0700 Benchmarks print their own name commit 1b85c9f21117c4d4d064a3035ef0aa67dddbfed4 Author: Ryan Dahl Date: Mon May 9 21:29:29 2011 -0700 Parsable output from pump bench commit 34f12fa5a57b9bfa5c9dcd510bd9e99f2c437b4b Author: Ryan Dahl Date: Mon May 9 19:40:28 2011 -0700 Remove unnecessary printf commit 55e4262ac8baec8b86c82c8e3533700936da4bba Author: Ryan Dahl Date: Mon May 9 19:37:45 2011 -0700 fix unix build commit 3530433dd19fa33d0c9501fe5b8829addddde1a7 Author: Bert Belder Date: Tue May 10 02:43:10 2011 +0200 Memory leak in pump benchmark commit 391f0098def0b966ce7e6da022fcd24406f6e1a2 Author: Bert Belder Date: Tue May 10 01:39:54 2011 +0200 Loopback pump benchmark commit a3796498998e9d31a862469da8595005d44136ae Author: Bert Belder Date: Mon May 9 23:54:52 2011 +0200 Add handle->write_queue_size support for windows commit 4eb2c6b3f2a8e457e7973c1b2e3566940ff78256 Author: Ryan Dahl Date: Mon May 9 09:18:15 2011 -0700 Remove unnecessary function commit ad64eb4856a8d17edc81317a273f7d83daae64d2 Author: Bert Belder Date: Mon May 9 16:57:12 2011 +0200 Windows: reorganize returned req processing commit 8b09c88f1fac10343a2d4e769399c0d18fda6b06 Author: Bert Belder Date: Mon May 9 16:57:39 2011 +0200 Windows: clarify and rename oio_atomic_exchange_set commit 820c942e3af29a838a027b3cf391382f0de5f5ce Author: Bert Belder Date: Mon May 9 16:58:37 2011 +0200 Make MS happy, declare variables first commit 317cea275e5f36076839c54c953fd11393c96de8 Author: Bert Belder Date: Mon May 9 16:58:14 2011 +0200 oio_win.h style commit 8f9ff7841374bea3ee8a0aea495d7163c459081d Author: Ryan Dahl Date: Mon May 9 02:30:11 2011 -0700 oio_err -> oio_err_t commit f71ea7f65da20992c5e96b6f0a695b128a85be0a Author: Ryan Dahl Date: Mon May 9 02:27:26 2011 -0700 Fix compiler warning commit cc72a0d1edd2f9cf1e5d51f6e44c63b08689887c Author: Ryan Dahl Date: Mon May 9 01:27:44 2011 -0700 unix: implement OIO_ASYNC Had to hack up the test to be inline with how libev does things. commit 67118c0b586b30c00fad9f15ac913e235c99b29b Author: Ryan Dahl Date: Mon May 9 00:00:32 2011 -0700 unix: initial implementation of prepare, check, idle Had to comment out a few of the asserts in the test. commit 5281e4d090b26b5d6dab9691eb4ed0b510349dc2 Author: Ryan Dahl Date: Sun May 8 23:19:03 2011 -0700 unix: Properly initialize delay_error in handle commit 9e9bae5eb66fe082bf64e35291b98b8c9fbce52b Author: Ryan Dahl Date: Sun May 8 22:47:51 2011 -0700 unix: Stub out async and thread functions commit 6eadee1d11e3c6fc98104274d388daea3a0a130e Author: Bert Belder Date: Mon May 9 05:39:10 2011 +0200 MinGW support for atomic-exchange-and-set-byte commit b1a8675ced6404b1e732a0bd5501bfd31d39d07a Author: Bert Belder Date: Mon May 9 04:29:22 2011 +0200 Add test-async commit 801b874415480f64adeb9ad892c2e86ea2c4b4f7 Author: Bert Belder Date: Mon May 9 04:28:22 2011 +0200 Implement test threading helpers for windows commit d4c5e599f3ad3ef88690c53dfd83ae80eabed8b9 Author: Bert Belder Date: Mon May 9 04:27:04 2011 +0200 Define API for test threading helpers commit f56ddd3fa83e186692fcc20a15432a39fa73125d Author: Bert Belder Date: Mon May 9 04:25:34 2011 +0200 Implement oio_async for windows commit c5a29a1eaaac4ca76f19bab71dc9da04ee105e80 Author: Bert Belder Date: Mon May 9 05:50:58 2011 +0200 Windows: check for invalid request type commit 517a296c85aa3f8b407846a84f2e24c817c034eb Author: Bert Belder Date: Mon May 9 04:27:42 2011 +0200 Add checks to test-loop-handles commit 50dbf654b972670118e2bd92c2babe2623e96249 Author: Bert Belder Date: Mon May 9 04:30:29 2011 +0200 Add mingw build results to .gitignore commit 8718c78ad0d34741165000fa9a24b18db456f095 Author: Bert Belder Date: Mon May 9 02:15:28 2011 +0200 oio_async or The Most Half-Assed Api In The Universe™ (apologies for my rant) commit 09b9d39d144c9da7b2321a3ac0adadd2f86ff00c Author: Bert Belder Date: Mon May 9 02:12:25 2011 +0200 Windows: cleanups, minor fixes commit 0144ab9ca722311f654093c0f47cdb6b75b8afbe Author: Bert Belder Date: Sun May 8 15:12:20 2011 +0200 Fix the makefile for mingw32 commit 4dd0a9cd73ac7bbfed6992966536f1375288b46c Author: Ryan Dahl Date: Sun May 8 02:43:59 2011 -0700 Comment style... commit ba31e8d0fa7a0e058805188d4627211d34896f9c Author: Ryan Dahl Date: Sun May 8 05:40:09 2011 -0400 Add _t to typedef structs commit e88c63fd753dd41d4f76129ab100dea5cb7e8205 Author: Ryan Dahl Date: Sat May 7 21:45:06 2011 -0700 Clean up the clean, distclean makefile stuff commit db2189f3b9c7ef6e0f7503a64a80d959156a3e43 Author: Ryan Dahl Date: Sat May 7 21:40:46 2011 -0700 Fixes #38. Use Luis's PREFIX trick. commit 7ac17b20c4b0d10672b612aa5d8b3c98610f925c Author: Ryan Dahl Date: Sat May 7 21:35:05 2011 -0700 Update readme commit 520e5abc7dcd8e0b00626a6830104d3f5ad1f80b Author: Ryan Dahl Date: Sat May 7 21:30:32 2011 -0700 Link correctly on mingw commit dd1c0af7b1ebfd9fcee43b537efde19d631b3ed4 Author: Ryan Dahl Date: Sat May 7 21:28:07 2011 -0700 Makefile to work with mingw commit d640c0651dfe1cf957e657b6d1ae54ffa8a4cf1d Author: Ryan Dahl Date: Sat May 7 20:42:22 2011 -0700 use gnu89 instead of ansi for mingw compat commit 5035f6851b19b7fb0c41f92da4e60185819e823c Author: Bert Belder Date: Sun May 8 05:20:30 2011 +0200 Windows: more readable oio_write signature commit 5ae6dae696c01184d12fdb12b5922e4cf6a9d16a Author: Ryan Dahl Date: Sat May 7 20:12:04 2011 -0700 Stub out check, prepare, idle, ref functions commit 20f38812e325b3d49db9aac618b7847fedbd7343 Author: Ryan Dahl Date: Sat May 7 20:07:07 2011 -0700 oio_write should have a more readable sig commit 5a5b435c5e6ddb8477a06c0f7bd253f28c643dbf Author: Bert Belder Date: Sun May 8 05:08:31 2011 +0200 Minor test-loop-handles fix commit 8d6e97398c19f55188eac905aa78ebcaeecbdc69 Author: Bert Belder Date: Sun May 8 04:48:27 2011 +0200 Add sizes benchmark to VS project commit e0be8efef6524c02b27de7f4ebdbae021599212f Author: Bert Belder Date: Sun May 8 04:44:55 2011 +0200 Test for oio_prepare/oio_check/oio_idle commit d217a6c848b3679b87c4e9443e0922e5af4d5c4e Author: Bert Belder Date: Sun May 8 04:45:06 2011 +0200 Update .gitignore commit 5591ed9d74a58cca81f510d25894fc13ac00b518 Author: Ryan Dahl Date: Sat May 7 19:32:51 2011 -0700 Replace dummy benchmark with sizeof(oio_handle) commit 70236f2075cea0cfe3039b3ae44b200498678bb3 Author: Ryan Dahl Date: Sat May 7 19:15:22 2011 -0700 Mac ignores commit 6107bd554b5c77218341f8a2f48ef631178410ce Author: Ryan Dahl Date: Sat May 7 19:14:13 2011 -0700 Fix bind tests for macos commit 850e4072e7ceb53e5fb2a120dfa0509f626c8c16 Author: Bert Belder Date: Sun May 8 03:27:05 2011 +0200 tests & benchmarks - make internal stuff static commit 7210f9106b8039b2f085c3683d193561a0148af7 Author: Bert Belder Date: Sun May 8 03:25:03 2011 +0200 Windows: fix bugs commit 33a65560ba6bb12c508692366cdffef7701c9cd4 Author: Bert Belder Date: Sun May 8 03:27:44 2011 +0200 VS solution is missing project references commit 6d8aa96ab66a8ab3ca4d06be628490cd279a0013 Author: Bert Belder Date: Sun May 8 00:27:12 2011 +0200 Check/prepare/idle for windows. No tests yes, so bugs are likely. commit 8caf48551647032d9958840c97529d55c2bf1b5e Author: Bert Belder Date: Sun May 8 00:18:24 2011 +0200 Windows: misc. fixes commit 98cd0811cb74a9050b9211396b1d2ed18b1a5fe1 Author: Bert Belder Date: Sun May 8 00:18:08 2011 +0200 Windows: implement oio_ref and oio_unref commit bba0f79b32350eba4793554eb2b2982fc0f9288e Author: Bert Belder Date: Sun May 8 00:17:44 2011 +0200 Windows: make room for oio_handle polymorphism commit 816eb1fa9e2e19938c16f742f686922c91582cbc Author: Bert Belder Date: Sat May 7 21:54:06 2011 +0200 Update API commit 75a39448412c9136ee4231f094731caa45fec233 Author: Bert Belder Date: Sat May 7 04:13:48 2011 +0200 Move visual studio solution/projects away from root Closes #37 commit 969e0269996c3a78f42a5a4b7cb062d69024f405 Author: Bert Belder Date: Sat May 7 03:48:13 2011 +0200 typo commit 655f030f2eacc2a0e632fb61906242b2e89ca12b Author: Bert Belder Date: Sat May 7 02:55:47 2011 +0200 api for prepare/check/idle callbacks commit 8e1645b85ff6c0a26babcafabbbf080bb1f30ed8 Author: Ryan Dahl Date: Thu May 5 00:21:13 2011 -0700 LF after tests complete commit e9dcf598cc6b33dfd4e5509fb5624fdc8ca5aece Author: Ryan Dahl Date: Wed May 4 15:36:40 2011 -0700 unix: Close on EOF if already shutdown commit 636c75e0b6e5bb3bd76c0afd155821de56b47cc3 Author: Bert Belder Date: Wed May 4 23:25:44 2011 +0200 Update ping-pongs benchmark to use the new api commit 2d384f56d87a835544cb908a8c9ecce95da2b574 Author: Bert Belder Date: Wed May 4 23:04:13 2011 +0200 Windows: set error to EAGAIN when returning 0-byte read commit 54c94365012acf4d2fed7b0cd39c544271df60b3 Author: Ryan Dahl Date: Wed May 4 13:56:50 2011 -0700 unix: fix test-callback-stack commit 6a4ead0eacf353cc8047eb414de355c0123750b9 Author: Bert Belder Date: Wed May 4 20:51:54 2011 +0200 Windows: clean up tcp endgame code, pass test-callback-stack commit 51ced6c176f376fcd6c8d258d68331ec6432cc8b Author: Bert Belder Date: Wed May 4 20:28:18 2011 +0200 Remove some debugging cruft commit 9d9c242a245f4cbff9395928a5453332fce134d6 Author: Bert Belder Date: Wed May 4 17:10:33 2011 +0200 More extensive test-callback-stack. Fails on windows now. commit b87f07dee4851c6036a471b7a7a0b5862af97b63 Author: Bert Belder Date: Wed May 4 04:00:17 2011 +0200 Windows: oio_shutdown kinda works commit 0d28b9e54936471606170e397acae62639f2d903 Author: Bert Belder Date: Wed May 4 03:59:35 2011 +0200 Echo server should shutdown instead of close commit 67b63c47b53649a668f5ae8b86ae03d9ec99a975 Author: Ryan Dahl Date: Tue May 3 17:08:02 2011 -0700 Fix some of the naming in private unix members commit 7de68611468f9afa48168c5ed15972a8ee79bd80 Author: Ryan Dahl Date: Tue May 3 12:38:15 2011 -0700 shutdown half-implemented on unix commit a8e4c0bc6bbb01fe7d4e8a978675e72b4b5784e4 Author: Ryan Dahl Date: Tue May 3 16:56:26 2011 -0700 Disable fail-always and pass-always commit b5e9579d055cec08066f1c72a0450f99b94a1bf0 Author: Ryan Dahl Date: Tue May 3 16:55:16 2011 -0700 Work around possible linux bug in bind_error_addrnotavail_1 commit 6d09362c8e9ad7bd2c4bce2e71958556150ca25c Author: Bert Belder Date: Wed May 4 00:29:57 2011 +0200 Improve test-runner output * fix rewind_cursor() for windows * use stderr consistently * let rewind_cursor() return void; closes #14 commit 4199a112024b90442ca60e45025d4fbadd971ccb Author: Bert Belder Date: Wed May 4 00:40:21 2011 +0200 Windows: link with static crt commit 773b0dcf79bd331a532cf0bf802ab07ad52be4af Author: Bert Belder Date: Wed May 4 00:38:32 2011 +0200 Remove trailing whitespace commit 2b07bc34ce46670bcb94dd2d8f5a5c57fc78a586 Author: Bert Belder Date: Wed May 4 00:37:04 2011 +0200 Windows: pass test-delayed-accept commit 270078adeffd1e87b4fd8804873899281a4f7792 Author: Bert Belder Date: Wed May 4 00:30:58 2011 +0200 Fix bugs in test-delayed-accept commit 30d16e2dfd9d5286fc62bab92a12ead868ac5b5f Author: Bert Belder Date: Wed May 4 00:27:24 2011 +0200 Windows: pass test-bind-error-fault commit 2267758153d1f4d4c9a20c9cf7514ddff8eded55 Author: Bert Belder Date: Wed May 4 00:26:30 2011 +0200 oio_strerror for windows commit 26148c1310162378935d20ad58719b5869fdc0be Author: Bert Belder Date: Wed May 4 00:25:48 2011 +0200 No EACCESS, expect EADDRNOTAVAIL instead commit 17c568b2350e9675895adfba558affbcf6c265a8 Author: Ryan Dahl Date: Tue May 3 11:24:59 2011 -0700 unix: fix tcp-writealot commit 7124fc5eca7425bf7e1ec23e5b1884a540db10af Author: Bert Belder Date: Tue May 3 21:30:09 2011 +0200 Updated echo-server commit 5a56c90af9542fe36f19c65b8bcc2d714a838bf3 Author: Bert Belder Date: Tue May 3 05:21:15 2011 +0200 Windows implementation - buggy commit b909ff5fba7b260dab6677372bccf2e84940aced Author: Bert Belder Date: Tue May 3 05:19:23 2011 +0200 Some test fixes commit d4289f47fcdfbc63caa5b8b6c32f2cdddd608bf1 Author: Ryan Dahl Date: Mon May 2 18:15:17 2011 -0700 Update unix backend to read_start/read_stop API commit d553776f5d4f06e83a15ee25b691182d7235387a Author: Bert Belder Date: Tue May 3 02:55:51 2011 +0200 Fix echo-server and test-ping-pong commit 6accf285dbe82b290e28dc6c3664ed335594c149 Author: Bert Belder Date: Tue May 3 02:35:11 2011 +0200 Fixed tests commit 61c91120e5707e1678a3f6e87a5ab45f44be1059 Author: Bert Belder Date: Tue May 3 02:01:59 2011 +0200 Reorganize some stuff in oio.h commit 1a76881cb02138c5d36309d73e95533631a5447a Author: Bert Belder Date: Tue May 3 00:16:04 2011 +0200 Yet another oio_read api. Hopefully this one sticks. commit 210bcdd49ea781b75920f3180b9fb4527ace46b8 Author: Ryan Dahl Date: Sat Apr 30 13:37:37 2011 -0700 New oio_read API commit 5dbe9d622ec9831872ca53a2fe991311970f28dc Author: Ryan Dahl Date: Fri Apr 29 15:18:25 2011 -0400 Fix headers for ssize_t commit c1c57f3df2df369f84efc363854a3d38efe3a19f Author: Ryan Dahl Date: Fri Apr 29 15:59:21 2011 -0400 Fix missing stddup def on unix commit 8c6c48595a2497c3487ba5742ac3e6af3c8bbc0a Author: Ryan Dahl Date: Thu Apr 28 14:10:03 2011 -0400 Make test runner better. Probably screws up windows. Fixes #30. commit 9b92e137214a640e79fbb829cbd82fd175552bd8 Author: Joshua Peek Date: Thu Apr 28 01:15:06 2011 +0200 Use _NSGetExecutablePath on darwin Closes #26. commit 40bb272a0c06d5c3afa7f1805523ed0a2c8ea919 Author: Ryan Dahl Date: Tue Apr 26 11:43:09 2011 -0700 style commit 95394439050bcbadf9180f79adaf36d0d659a671 Author: Ryan Dahl Date: Tue Apr 26 01:26:37 2011 -0700 Partial implementation of buffer writes on unix. Hitting callstack overflow problem in echo-server. commit b4836377f99ff8fcefb879f7bdcea552dd8a81c6 Author: Ryan Dahl Date: Mon Apr 25 21:54:17 2011 -0700 unix runner: implement timeout on process_wait commit 1d9e1850f6a6ea540f2839c4f878ce9bf2f56adf Author: Ryan Dahl Date: Mon Apr 25 20:08:56 2011 -0700 Linux passes bind tests commit a6430f412191a90261cc5ea02993a6b43b38c105 Author: Bert Belder Date: Tue Apr 26 03:48:08 2011 +0200 More bind error tests commit 204741348833f456018b441b4bd74c655ad0d3a3 Author: Bert Belder Date: Tue Apr 26 03:19:49 2011 +0200 Revert "Don't use SO_REUSEADDR on Windows." This reverts commit c1a04b6dfd20344852be85c758552668fbda54df. commit 0a7c19e19ecd8ecb623c1eca34d2ecfaeb7307bf Author: Ryan Dahl Date: Mon Apr 25 17:26:07 2011 -0700 unix: implement errnos commit c1a04b6dfd20344852be85c758552668fbda54df Author: Bert Belder Date: Tue Apr 26 02:02:26 2011 +0200 Don't use SO_REUSEADDR on Windows. It's semantics suck. See http://bugs.python.org/issue2550 commit 1d7d70ba4a0796b638b5022bd7f8a514cc2503df Author: Bert Belder Date: Tue Apr 26 02:01:59 2011 +0200 Add some error code mappings to oio-win commit c3cd1ae9374582ab825cd1df1dde991475f6846c Author: Bert Belder Date: Tue Apr 26 01:59:37 2011 +0200 Add test for EADDRINUSE commit 7e9e0e5e3288f03afde45f90971d2b77d39e4594 Author: Bert Belder Date: Mon Apr 25 23:20:08 2011 +0200 Test-ping-pong: don't bind client address commit 89da632a1996c74a489524a33bb0c81d0b9051fe Author: Bert Belder Date: Mon Apr 25 23:19:52 2011 +0200 Make test-tcp-writealot faster commit c48e753d981e75dc003291fc6c9b213c5bbc0941 Author: Bert Belder Date: Mon Apr 25 23:17:48 2011 +0200 Fix bug in test-timeout commit a5bf3988eeca37b4d9e893ab8eb0ec2644e65b8c Author: Bert Belder Date: Fri Apr 22 05:12:10 2011 +0200 Write-a-lot test commit c18d6649f821e0d398c768eda3c6568c61145e0b Author: Bert Belder Date: Fri Apr 22 05:09:58 2011 +0200 Style commit c61b38f48b4d52a7aa13e9a75d2eb0cd65e787a4 Author: Bert Belder Date: Fri Apr 22 00:45:49 2011 +0200 Test for not immediately calling oio_accept from accept_cb Closes #10. commit c19bbff4d14658855df6b752ef952298a7bb6e2c Author: Ryan Dahl Date: Thu Apr 21 09:23:12 2011 -0700 Update AUTHORS commit 2fdf161e6156ead90c7501b1a07614d5a2bb65f3 Author: Bert Belder Date: Thu Apr 21 17:19:25 2011 +0200 Windows: better infrastructure for closing handles. commit 9468c6570a5181b7ff50024b26ac63feb5689cbc Author: Alan Gutierrez Date: Thu Apr 21 17:24:50 2011 +0800 Check oio_err in connection_fail test. * Renamed test_connection_fail to connection_fail following the conventions. * Mapped Windows error ERROR_CONNECTION_REFUSED to OIO_ECONNREFUSED. * Asserting that the oio_err in connection_fail is OIO_ECONNREFUSED. commit 5bcbc31920007645f8c18895bf9864fc64244ea9 Author: Bert Belder Date: Wed Apr 20 22:28:36 2011 +0200 Tests / benchmarks use new error handling api commit 183c1de112841ce5db951d1cefc124b3a4bba47e Author: Bert Belder Date: Wed Apr 20 22:26:28 2011 +0200 Windows: use new error handling API commit 97f9404ac08d8627f237cf081c28cbd8a2e2c3e5 Author: Bert Belder Date: Wed Apr 20 22:32:06 2011 +0200 Define oio_err earlier commit 989a9cf70d170d74d331c91a9c0fa24f0a68bded Author: Bert Belder Date: Wed Apr 20 20:31:09 2011 +0200 Goodbye, solution items Closes #25 commit a4fb1710873237df1daa541335fb0ed14e11d463 Author: Bert Belder Date: Wed Apr 20 03:16:57 2011 +0200 oio_errno -> oio_err_code `errno` can't be used as a struct member on windows. commit b6d4bf16a99a9a0626ae9ee239b5fd9fa0778bc6 Author: Bert Belder Date: Wed Apr 20 02:47:49 2011 +0200 Finalize error handling api. Breaks unix and windows. Closes #15 Closes #18 commit 67a3fa24dc1e489b5833db67ad7fdd0a67a186e2 Author: Bert Belder Date: Tue Apr 19 23:48:47 2011 +0200 Revert "Remove oio_err - use ints" This reverts commit 111536c9e567a08530516b904c6d7f34d307538a. commit 62a56d3fda35934935c836bb09db04879cdb2329 Author: Bert Belder Date: Tue Apr 19 17:16:54 2011 +0200 Minor license update commit 8a187171edb5cda7dd97847216cee39b4af9d607 Author: Bert Belder Date: Tue Apr 19 17:01:45 2011 +0200 Remove oio_write2. Closes #20 commit 64d27f26f6472cbd5057fee0449b09e7c7fc8721 Author: Bert Belder Date: Tue Apr 19 16:53:06 2011 +0200 Add unix files and documentation as non-compile items to the solution commit 53f9d5a8411dc2db0d2c8fb096406b058d142019 Author: Bert Belder Date: Tue Apr 19 14:51:10 2011 +0200 Allow tests and benchmarks to use the same helpers. Closes #21. commit 2f1150e680b9346af256a0f623fa016519891058 Author: Bert Belder Date: Tue Apr 19 14:22:18 2011 +0200 Fix windows build. Test-connection-fails still fails. commit 111536c9e567a08530516b904c6d7f34d307538a Author: Ryan Dahl Date: Tue Apr 19 02:29:36 2011 -0700 Remove oio_err - use ints commit 595756048c80b464485db171d0402cfb642f3e6e Author: Ryan Dahl Date: Tue Apr 19 02:09:58 2011 -0700 Linux passes test_connection_fail commit 461f0a74ce4ebc839c9af261b6bb1e400d46498f Author: Ryan Dahl Date: Tue Apr 19 01:50:48 2011 -0700 Add test-connection-fail. Not yet passing linux. Feel free to modify. commit 1a99dcc980d273d04a539b3baf30191a46e76cb6 Author: Ryan Dahl Date: Mon Apr 18 23:51:45 2011 -0700 Add ping-pong benchmark On Linux I'm getting ping_pongs: 22807 pings commit 2cbcbdd1a4bdd87827b22ade9f5234f3c3ca4fb5 Author: Ryan Dahl Date: Mon Apr 18 23:05:44 2011 -0700 Update Makefile for benchmark runner. commit 5275b036b00774add981fb4250877e44ce38f0eb Author: Bert Belder Date: Tue Apr 19 04:26:32 2011 +0200 Benchmark runner commit e55a84de36f0606cce17a4f4639d9fdbdbff5251 Author: Ryan Dahl Date: Mon Apr 18 13:02:30 2011 -0700 put test/runner in gitignore commit 61e1f5f3c972882b088c9e2727d35684101943ba Author: Ryan Dahl Date: Mon Apr 18 13:01:50 2011 -0700 s/oio_tcp_handle_init/oio_tcp_init/ commit 8f6a175e9dded19f2522293aad23bf08c572cf6e Author: Ryan Dahl Date: Mon Apr 18 12:53:02 2011 -0700 s/oio_tcp_handle_accept/oio_accept/ commit cf4fbc09255ef7f018e36902ae9a2106aa5332f6 Author: Ryan Dahl Date: Mon Apr 18 11:10:18 2011 -0700 Add copyright headers, license file. closes #17. commit 981616514b2ac68d2561abe5852191f8ef0f3382 Author: Bert Belder Date: Mon Apr 18 19:25:03 2011 +0200 More MinGW compatibility commit 6250e986d8d4795e79735b3ea0d2f50aad73af43 Author: Ryan Dahl Date: Mon Apr 18 10:17:40 2011 -0700 Readme commit 50e3c5fa97838af8a4647b6c2b93ae82f490ba8f Author: Bert Belder Date: Mon Apr 18 18:07:32 2011 +0200 Resolve MinGW compile errors commit a3be5339e274e83ae10c009955fa9d7d9af0bc70 Author: Bert Belder Date: Mon Apr 18 14:44:01 2011 +0200 Rename test-runner to just runner And a minor fix to the VS solution. commit c3eda7a4daea6036eecaac5f268a6b0f86cb9b82 Author: Ryan Dahl Date: Mon Apr 18 03:18:26 2011 -0700 oio_tcp_handle_accept() does not require initialization of client closes #13. commit fa439e7bbc857283dd4e8546014c2aad7f10ce43 Author: Ryan Dahl Date: Mon Apr 18 00:39:29 2011 -0700 Style commit 59f1ce0f44613793be54925730fac93006d028de Author: Ryan Dahl Date: Mon Apr 18 00:29:13 2011 -0700 Macro styling for ASSERT and FATAL. closes #8. closes #6. commit d546a3115fcbbde62a4c47ff3ebff631f2127bd9 Author: Ryan Dahl Date: Mon Apr 18 00:12:33 2011 -0700 API Change: Remove unnecessary params from oio_tcp_handle_accept() closes #13. commit 0027dbd976f5d1ddd3f7a491abffff8354798e56 Author: Ryan Dahl Date: Sun Apr 17 23:53:09 2011 -0700 Implement and add test for oio_now() commit f12299d6c86946eeba94b1346b5db5c06c38189f Author: Ryan Dahl Date: Sun Apr 17 23:41:24 2011 -0700 Linux passes timeout test commit 2ba25c8249f562d37c4dcc111111e55f647d08a3 Author: Ryan Dahl Date: Sun Apr 17 22:49:58 2011 -0700 API change: oio_tcp_handle_init() required before oio_accept() Fixes close_cb_stack on UNIX. commit d3ba74a68145ea696f20a8299b1d156bcab457b1 Author: Ryan Dahl Date: Sun Apr 17 19:36:04 2011 -0700 add version commit 00a947e7b38d5e4b4e535c65a9fae0b7163d2ec9 Author: Ryan Dahl Date: Sun Apr 17 19:18:46 2011 -0700 Add note about oio_req initialization commit 42cefd934e4275e3614d4900f2f5c0d35cdfbdf2 Author: Ryan Dahl Date: Sat Apr 16 14:04:45 2011 -0700 linux: ping-pong test passes. commit c8bdf15f5d56d40a912bc550e5c8ac3a9f2db01d Author: Ryan Dahl Date: Fri Apr 15 11:20:59 2011 -0700 Unix: fix build for timer test commit 84ebdf842922102c53a970d72f20cc811e1dbe54 Author: Ryan Dahl Date: Fri Apr 15 10:27:09 2011 -0700 style fixes to close_cb_stack commit 2414d7e728aac1e9e079c2a90adb6f4b143e58ee Author: Ryan Dahl Date: Fri Apr 15 10:26:51 2011 -0700 Fix close_cb_stack commit 0ffc8b624028d11cc361947b40fa1428625797b7 Author: Bert Belder Date: Fri Apr 15 19:43:28 2011 +0200 Timeout test passes on windows commit 1ce1f82ca3c72ab76788cc6342720ce4e6f3065d Author: Bert Belder Date: Fri Apr 15 19:38:29 2011 +0200 Typo commit 57cc0efd8632a0d0d34852331d735a90b4d4a833 Author: Bert Belder Date: Fri Apr 15 19:35:17 2011 +0200 Add timeout test to msvs project commit aec5eac8bc63a8fecab651aa04dbfa0d5d899230 Author: Bert Belder Date: Fri Apr 15 19:32:28 2011 +0200 Add oio_timeout test commit a2c24c67d602ce4762a6750327be23e5268ed518 Author: Ryan Dahl Date: Fri Apr 15 01:11:13 2011 -0700 unix: echo-server works commit 93dd5f74c7809f304c24e4001ae75751e2971ed4 Author: Bert Belder Date: Fri Apr 15 03:32:55 2011 +0200 Clean up test error handling Define FATAL and ASSERT macros. Dont use libc's assert as it might get optimized away. commit 9f746952cfc0254109a098ad617d48c4029c84b6 Author: Bert Belder Date: Thu Apr 14 22:34:13 2011 +0200 Un-break windows commit 7ed7bb34b0a68a5647ca9863bfbf1732a8d90c39 Author: Ryan Dahl Date: Thu Apr 14 13:15:48 2011 -0700 Fix exit status checking in test-runner-unix commit 769948a5ad12013defab6a349c81c55391fc6098 Author: Ryan Dahl Date: Thu Apr 14 11:19:36 2011 -0700 test-runner compiles commit 01cd1c5b17962a32344600ed1c9dde2b80019e8d Author: Ryan Dahl Date: Sun Apr 10 14:59:41 2011 -0700 oio.a compiles - totally broken commit 53207d0e784a66bc812efa2d527e57214549fe89 Author: Bert Belder Date: Thu Apr 14 01:35:39 2011 +0200 Fix bug in test commit 23416dd9098b9587af19a6b8f74204757dcb36ec Author: Bert Belder Date: Tue Apr 12 23:33:11 2011 +0200 Consisten naming, declare functions static, line length commit 34f69db83ad0556b422214d6fc0b4dc68ecea48f Author: Bert Belder Date: Tue Apr 12 20:39:14 2011 +0200 Windows: first shot at oio_timeout support commit abcfcd557336e87768808071bdb19db8596978cc Author: Bert Belder Date: Sun Apr 10 18:53:27 2011 +0200 Implicitly bind client socket in oio_connect commit 26b56fec8397e84c4f4700a57726dfe2eebc54a3 Author: Ryan Dahl Date: Sat Apr 9 09:38:16 2011 -0700 add link to book commit 11ee00f08cdce087079f3189968a04cbf6d2472e Author: Bert Belder Date: Sat Apr 9 01:27:29 2011 +0200 Move oio_req_s and oio_handle_s back to oio.h; Windows improvements commit 39d31a100f542d3e4d50cf22ee3147563eb1b5c7 Author: Bert Belder Date: Thu Apr 7 11:02:54 2011 +0200 ol -> oio commit 0d85eb252bb9c068fe2c5a46aa18273574aee2f6 Author: Bert Belder Date: Thu Apr 7 04:51:59 2011 +0200 API changes - unix broken commit ea149dd2d73a8d4d0628a5f136a79e7d5e0ccf2d Author: Bert Belder Date: Tue Apr 5 16:44:09 2011 +0200 Windows: x64 support, fixes commit 48993281660a79ca4845b8a9e8b14d3e0400f68a Author: Bert Belder Date: Tue Apr 5 04:24:03 2011 +0200 Add ol_close_cb stack test and fix it for Windows commit 56608452afb00f2967e3c485aa241d5867ac0532 Author: Bert Belder Date: Tue Apr 5 03:03:45 2011 +0200 Test runner minor fixes commit ad94c9297e59f4dccb06cb4dbbcb38dbc8d64edf Author: Bert Belder Date: Tue Apr 5 01:43:17 2011 +0200 First shot at test harness commit 618421ce958936bae37ec4f31f0aa439fc9628fa Author: Bert Belder Date: Tue Apr 5 01:41:53 2011 +0200 Windows: improvements commit 47e95cbf4a3e3112f6c393161039d8871c5e7b1e Author: Ryan Dahl Date: Sun Apr 3 11:34:07 2011 -0700 iocp-links: clean up introduction commit 500989728a395bde73161534a848aac2dccd139a Author: Ryan Dahl Date: Sun Apr 3 11:33:34 2011 -0700 style commit 6477b5295d1df42274cabfcffeddbe3ea7f5b629 Author: Ryan Dahl Date: Thu Mar 31 23:31:53 2011 -0700 better check for strnlen commit 3ad227498968355001b65c49891d4b89a012ae8d Author: Josh Roesslein Date: Fri Apr 1 00:42:29 2011 -0500 Fix build for Apple/OSX. commit 37ea7d572d02289c486bf8d6ba81a63b38a9d8e1 Author: Bert Belder Date: Fri Apr 1 00:09:06 2011 +0200 Update tests commit e5d9ef954d0648293cf1f3dc504f35cc3df95879 Author: Ryan Dahl Date: Thu Mar 31 09:02:07 2011 -0700 Make unix work again commit 3b0175c135a18b2e25d7cb2b33e07c91750929fa Author: Bert Belder Date: Thu Mar 31 14:30:25 2011 +0200 Echo demo fix commit ca38cd91a9736dba4ac4f8d82d17377bfa9104a8 Author: Bert Belder Date: Thu Mar 31 14:23:15 2011 +0200 Windows: checks, better error handling, api change commit 5628ee9e51ca2680fc1bc12def0c731122646eed Author: Bert Belder Date: Thu Mar 31 14:22:20 2011 +0200 API change - probably breaks unix commit 42d96dc3ca3d28d3a76f54fb11da49b64cd8660b Author: Ryan Dahl Date: Thu Mar 31 00:21:15 2011 -0700 Add ping-pong test - not yet working on unix commit 5304a18002d9348ae6bbde936452a117ab0702dc Author: Ryan Dahl Date: Wed Mar 30 22:42:02 2011 -0700 Change around names in test directory - sorry bert commit 7ce2cb815d039941d5576fe06c8463a953ea2818 Author: Ryan Dahl Date: Wed Mar 30 21:36:52 2011 -0700 echo-server on unix works commit 08ae03ec86bd3dddd0843d54f85a0bb87ac3ae91 Author: Bert Belder Date: Wed Mar 30 22:36:41 2011 +0200 windows: connect commit 1c15142618f9d321df4dd19244483980bd9134cc Author: Ryan Dahl Date: Wed Mar 30 12:15:54 2011 -0700 Correct statement about select on windows commit 336a768a2103e54c7a7ababecf2c9d4696d33307 Author: Bert Belder Date: Wed Mar 30 08:57:46 2011 +0200 Windows: bugfixes, read, write commit 2d5b55091864ca52225835ad0a64dadfcd7500a5 Author: Bert Belder Date: Wed Mar 30 07:19:17 2011 +0200 Accept for Windows commit 5917f8b273a27d4d79c2a1b65cb32e279825a3fe Author: Bert Belder Date: Wed Mar 30 05:03:56 2011 +0200 Work on Windows support commit 3a23aaa21c7f8f0b28f15dcb5331471891760280 Author: Ryan Dahl Date: Tue Mar 29 19:57:11 2011 -0700 ol_handle_new -> ol_tcp_handle_new commit dee44d886b48dc2e782ffe26c050509d19c2702e Author: Ryan Dahl Date: Tue Mar 29 19:53:29 2011 -0700 unix: simple write/read for now commit b538d55139fdc8124a8fe5c528f2ac5391f1cd12 Author: Bert Belder Date: Wed Mar 30 03:11:36 2011 +0200 Visual Studio project commit 6fc7bfd19e038b938c228391f6d5e37fcbb0e083 Author: Bert Belder Date: Wed Mar 30 03:10:57 2011 +0200 .gitignore commit f73141f6c4da7baff3bf5da4f9ae911da4f21beb Author: Ryan Dahl Date: Tue Mar 29 17:33:32 2011 -0700 Use stddef isntead of sys/types for size_t commit 0dbaa019d1b51518af694584c9617587740a0940 Author: Ryan Dahl Date: Tue Mar 29 17:13:19 2011 -0700 iocp-links: Simplify function example commit 311fbe3f8f1c6464ae997c0b44cab935b2b1a273 Author: Ryan Dahl Date: Tue Mar 29 16:40:27 2011 -0700 Compile with -ansi commit 0fe92b75bc61f30fb356cc481d486eb2892a206a Author: Bert Belder Date: Wed Mar 30 01:34:56 2011 +0200 C90 conformance commit 77bc96b75bd17a26ae8ba192117e9bb1c39a5405 Author: Ryan Dahl Date: Tue Mar 29 15:29:54 2011 -0700 More gitignore commit 06b00e58cf50bc9fb357abc87d305d2bca6f234e Author: Ryan Dahl Date: Tue Mar 29 15:29:32 2011 -0700 remove old files commit 510a5e4a2b5e09f388d6719d0b0d7a8b753ba29d Author: Ryan Dahl Date: Tue Mar 29 10:11:46 2011 -0700 add gitignore commit 4fdf0276b32a8487386304a6981436508bdb982f Author: Ryan Dahl Date: Tue Mar 29 10:08:45 2011 -0700 ... commit b17dcd55d724cd9c07e35dec2a2bf5f659ce2de4 Author: Ryan Dahl Date: Mon Mar 28 03:54:18 2011 -0700 compiles - obviously doesn't work commit 668c0c6b272cc3b295fa0addfde0177cb2cf7345 Author: Ryan Dahl Date: Mon Mar 28 03:32:02 2011 -0700 Improve makefile commit 6b0d4fa3725beea11ca8c0e43b0fd3169407d15e Author: Ryan Dahl Date: Mon Mar 28 03:26:00 2011 -0700 Mostly compiling commit 151e2a8f0daa0c83913f7953ee3be95a3284bd36 Author: Ryan Dahl Date: Mon Mar 28 03:17:52 2011 -0700 Add libev, more changes commit cb17a5e37a5c0c4521220a6afe8d9e0e77332151 Author: Ryan Dahl Date: Mon Mar 28 01:55:29 2011 -0700 New start commit dc2d8bc31358ef40867237171d3da735397319ba Author: Ryan Dahl Date: Sun Mar 27 14:50:51 2011 -0700 ... commit fa85f4ac59077fd3d2a1665183bb895912ffbf75 Author: Ryan Dahl Date: Thu Mar 24 01:53:22 2011 -0700 Use dashes in name modern looking commit bdda3252bcb577e3375df52e5cc5c5349c56f55c Author: Ryan Dahl Date: Thu Mar 24 01:50:23 2011 -0700 Work! commit 116bd967d6177640fba452aafe0222a0151f4816 Author: Ryan Dahl Date: Wed Mar 23 20:40:55 2011 -0700 ... commit e108022ccc6e33a12ebac2ba33eef190d9f89b8f Author: Ryan Dahl Date: Wed Mar 23 17:56:16 2011 -0700 ... commit 508eeb42c4144ec43147181b1f9c7b57ed0e294b Author: Ryan Dahl Date: Wed Mar 23 16:31:29 2011 -0700 docs commit f3eb0d90f7cf171a06bb78d10e96a875d56b28ab Author: Ryan Dahl Date: Wed Mar 23 05:56:06 2011 -0700 sleep commit a91c63ba8fd87975a4ac00266a3492b7abf272ca Author: Ryan Dahl Date: Wed Mar 23 03:29:24 2011 -0700 Add a bunch more text commit 133b4e3999221ba654744262cb065c3aafce3312 Author: Ryan Dahl Date: Wed Mar 23 01:39:59 2011 -0700 start! --- src/libuv/.gitignore | 1 + src/libuv/.mailmap | 9 + src/libuv/AUTHORS | 46 +++++ src/libuv/ChangeLog | 192 ++++++++++++++++++++- src/libuv/README.md | 4 +- src/libuv/build.mk | 6 + src/libuv/checksparse.sh | 3 + src/libuv/common.gypi | 1 - src/libuv/config-unix.mk | 1 + src/libuv/{gyp_uv => gyp_uv.py} | 2 +- src/libuv/include/uv.h | 6 + src/libuv/src/unix/core.c | 22 ++- src/libuv/src/unix/darwin-proctitle.c | 42 ++++- src/libuv/src/unix/darwin.c | 10 +- src/libuv/src/unix/error.c | 6 + src/libuv/src/unix/fs.c | 9 +- src/libuv/src/unix/fsevents.c | 4 +- src/libuv/src/unix/getaddrinfo.c | 7 +- src/libuv/src/unix/internal.h | 1 + src/libuv/src/unix/kqueue.c | 37 +++- src/libuv/src/unix/linux-core.c | 95 ++++++++++- src/libuv/src/unix/openbsd.c | 2 +- src/libuv/src/unix/process.c | 67 +++++--- src/libuv/src/unix/signal.c | 5 +- src/libuv/src/unix/stream.c | 127 +++++++++----- src/libuv/src/unix/sunos.c | 50 ++++-- src/libuv/src/unix/udp.c | 72 ++++---- src/libuv/src/version.c | 2 +- src/libuv/src/win/error.c | 1 + src/libuv/src/win/fs-event.c | 3 +- src/libuv/src/win/fs.c | 104 ++++++----- src/libuv/src/win/pipe.c | 23 ++- src/libuv/src/win/poll.c | 3 +- src/libuv/src/win/process-stdio.c | 15 +- src/libuv/src/win/signal.c | 4 +- src/libuv/src/win/tcp.c | 3 + src/libuv/src/win/util.c | 1 + src/libuv/test/test-emfile.c | 108 ++++++++++++ src/libuv/test/test-ipc.c | 2 +- src/libuv/test/test-list.h | 23 +++ src/libuv/test/test-osx-select.c | 47 +++++ src/libuv/test/test-pipe-server-close.c | 91 ++++++++++ src/libuv/test/test-poll-close.c | 2 +- src/libuv/test/test-poll-closesocket.c | 89 ++++++++++ src/libuv/test/test-shutdown-twice.c | 83 +++++++++ src/libuv/test/test-spawn.c | 209 +++++++++++++++++++++++ src/libuv/test/test-tcp-close-accept.c | 177 +++++++++++++++++++ src/libuv/test/test-watcher-cross-stop.c | 108 ++++++++++++ src/libuv/uv.gyp | 7 + src/libuv/vcbuild.bat | 21 ++- 50 files changed, 1736 insertions(+), 217 deletions(-) rename src/libuv/{gyp_uv => gyp_uv.py} (98%) create mode 100644 src/libuv/test/test-emfile.c create mode 100644 src/libuv/test/test-pipe-server-close.c create mode 100644 src/libuv/test/test-poll-closesocket.c create mode 100644 src/libuv/test/test-shutdown-twice.c create mode 100644 src/libuv/test/test-tcp-close-accept.c create mode 100644 src/libuv/test/test-watcher-cross-stop.c diff --git a/src/libuv/.gitignore b/src/libuv/.gitignore index 3f4c5193..afa05394 100644 --- a/src/libuv/.gitignore +++ b/src/libuv/.gitignore @@ -3,6 +3,7 @@ *.l[oa] *.opensdf *.orig +*.pyc *.sdf *.suo core diff --git a/src/libuv/.mailmap b/src/libuv/.mailmap index 5dc4075e..7ece4373 100644 --- a/src/libuv/.mailmap +++ b/src/libuv/.mailmap @@ -1,14 +1,23 @@ Alan Gutierrez +Andrius Bentkus Bert Belder Bert Belder Brandon Philips Brian White Brian White +Fedor Indutny Frank Denis Isaac Z. Schlueter +Justin Venus +Keno Fischer +Keno Fischer +Maciej Małecki +Marc Schlaich +Rasmus Pedersen Robert Mustacchi Ryan Dahl Ryan Emery +Sam Roberts San-Tai Hsu Saúl Ibarra Corretgé Shigeki Ohtsu diff --git a/src/libuv/AUTHORS b/src/libuv/AUTHORS index 119773a5..b27d1771 100644 --- a/src/libuv/AUTHORS +++ b/src/libuv/AUTHORS @@ -85,3 +85,49 @@ Miroslav Bajtoš Elliot Saba Wynn Wilkes Andrei Sedoi +Chris Bank +Geert Jansen +Alex Gaynor +huxingyi +Alex Crichton +Luca Bruno +Trevor Norris +Oguz Bastemur +Alexis Campailla +Justin Venus +Ben Kelly +Kristian Evensen +Sean Silva +Linus Mårtensson +Navaneeth Kedaram Nambiathan +Brent Cook +Brian Kaisner +Reini Urban +Maks Naumov +Sean Farrell +Christoph Iserlohn +Steven Kabbes +Tenor Biel +Andrej Manduch +Joshua Neuheisel +Yorkie +Sam Roberts +River Tarnell +Nathan Sweet +Dylan Cali +Austin Foxley +Geoffry Song +Benjamin Saunders +Rasmus Pedersen +William Light +Oleg Efimov +Lars Gierth +StarWing +thierry-FreeBSD +Isaiah Norton +Raul Martins +David Capello +Paul Tan +Javier Hernández +Tonis Tiigi +Michael Hudson-Doyle diff --git a/src/libuv/ChangeLog b/src/libuv/ChangeLog index 6ffffc77..3f010a0c 100644 --- a/src/libuv/ChangeLog +++ b/src/libuv/ChangeLog @@ -1,4 +1,194 @@ -2013.07.26, Version 0.10.13 (Stable) +2014.10.21, Version 0.10.29 (Stable) + +Changes since version 0.10.28: + +* darwin: allocate enough space for select() hack (Fedor Indutny) + +* linux: try epoll_pwait if epoll_wait is missing (Michael Hudson-Doyle) + +* windows: map ERROR_INVALID_DRIVE to UV_ENOENT (Saúl Ibarra Corretgé) + + +2014.07.32, Version 0.10.28 (Stable), 9c14b616f5fb84bfd7d45707bab4bbb85894443e + +Changes since version 0.10.27: + +* windows: fix handling closed socket while poll handle is closing (Saúl Ibarra + Corretgé) + +* unix: return system error on EAI_SYSTEM (Saúl Ibarra Corretgé) + +* unix: fix bogus structure field name (Saúl Ibarra Corretgé) + +* darwin: invoke `mach_timebase_info` only once (Fedor Indutny) + + +2014.05.02, Version 0.10.27 (Stable), 6e24ce23b1e7576059f85a608eca13b766458a01 + +Changes since version 0.10.26: + +* windows: fix console signal handler refcount (Saúl Ibarra Corretgé) + +* win: always leave crit section in get_proc_title (Fedor Indutny) + + +2014.04.07, Version 0.10.26 (Stable), d864907611c25ec986c5e77d4d6d6dee88f26926 + +Changes since version 0.10.25: + +* process: don't close stdio fds during spawn (Tonis Tiigi) + +* build, windows: do not fail on Windows SDK Prompt (Marc Schlaich) + +* build, windows: fix x64 configuration issue (Marc Schlaich) + +* win: fix buffer leak on error in pipe.c (Fedor Indutny) + +* kqueue: invalidate fd in uv_fs_event_t (Fedor Indutny) + +* linux: always deregister closing fds from epoll (Geoffry Song) + +* error: add ENXIO for O_NONBLOCK FIFO open() (Fedor Indutny) + + +2014.02.19, Version 0.10.25 (Stable), d778dc588507588b12b9f9d2905078db542ed751 + +Changes since version 0.10.24: + +* stream: start thread after assignments (Oguz Bastemur) + +* unix: correct error when calling uv_shutdown twice (Saúl Ibarra Corretgé) + +* windows: freeze in uv_tcp_endgame (Alexis Campailla) + +* sunos: handle rearm errors (Fedor Indutny) + + +2014.01.30, Version 0.10.24 (Stable), aecd296b6bce9b40f06a61c5c94e43d45ac7308a + +Changes since version 0.10.23: + +* linux: move sscanf() out of the assert() (Trevor Norris) + +* linux: fix C99/C++ comment (Fedor Indutny) + + +2014.01.23, Version 0.10.23 (Stable), dbd218e699fec8be311d85e4788be9e28ae884f8 + +Changes since version 0.10.22: + +* linux: relax assumption on /proc/stat parsing (Luca Bruno) + +* openbsd: fix obvious bug in uv_cpu_info (Fedor Indutny) + +* process: close stdio after dup2'ing it (Fedor Indutny) + + +2014.01.08, Version 0.10.22 (Stable), f526c90eeff271d9323a9107b9a64a4671fd3103 + +Changes since version 0.10.21: + +* windows: avoid assertion failure when pipe server is closed (Bert Belder) + + +2013.12.19, Version 0.10.21 (Stable), 375ebce068555f0ca8151b562edb5f1b263022db + +Changes since version 0.10.20: + +* unix: fix a possible memory leak in uv_fs_readdir (Alex Crichton) + + +2013.12.13, Version 0.10.20 (Stable), 04141464dd0fba90ace9aa6f7003ce139b888a40 + +Changes since version 0.10.19: + +* linux: fix up SO_REUSEPORT back-port (Ben Noordhuis) + +* fs-event: fix invalid memory access (huxingyi) + + +2013.11.13, Version 0.10.19 (Stable), 33959f7524090b8d2c6c41e2400ca77e31755059 + +Changes since version 0.10.18: + +* darwin: avoid calling GetCurrentProcess (Fedor Indutny) + +* unix: update events from pevents between polls (Fedor Indutny) + +* fsevents: support japaneese characters in path (Chris Bank) + +* linux: don't turn on SO_REUSEPORT socket option (Ben Noordhuis) + +* build: fix windows smp build with gyp (Geert Jansen) + +* linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT (Ben Noordhuis) + +* unix: fix reopened fd bug (Fedor Indutny) + +* core: fix fake watcher list and count preservation (Fedor Indutny) + + +2013.10.19, Version 0.10.18 (Stable), 9ec52963b585e822e87bdc5de28d6143aff0d2e5 + +Changes since version 0.10.17: + +* unix: fix uv_spawn() NULL pointer deref on ENOMEM (Ben Noordhuis) + +* unix: don't close inherited fds on uv_spawn() fail (Ben Noordhuis) + +* unix: revert recent FSEvent changes (Ben Noordhuis) + +* unix: fix non-synchronized access in signal.c (Ben Noordhuis) + + +2013.09.25, Version 0.10.17 (Stable), 9670e0a93540c2f0d86c84a375f2303383c11e7e + +Changes since version 0.10.16: + +* build: remove GCC_WARN_ABOUT_MISSING_NEWLINE (Ben Noordhuis) + +* darwin: fix 10.6 build error in fsevents.c (Ben Noordhuis) + + +2013.09.06, Version 0.10.16 (Stable), 2bce230d81f4853a23662cbeb26fe98010b1084b + +Changes since version 0.10.15: + +* windows: make uv_shutdown() for write-only pipes work (Bert Belder) + +* windows: make uv_fs_open() report EINVAL when invalid arguments are passed + (Bert Belder) + +* windows: make uv_fs_open() report _open_osfhandle() failure correctly (Bert + Belder) + +* windows: make uv_fs_chmod() report errors correctly (Bert Belder) + +* windows: wrap multi-statement macros in do..while block (Bert Belder) + + +2013.08.24, Version 0.10.15 (Stable), 221078a8fdd9b853c6b557b3d9a5dd744b4fdd6b + +Changes since version 0.10.14: + +* fsevents: create FSEvents thread on demand (Ben Noordhuis) + +* fsevents: use a single thread for interacting with FSEvents, because it's not + thread-safe. (Fedor Indutny) + +* fsevents: share FSEventStream between multiple FS watchers, which removes a + limit on the maximum number of file watchers that can be created on OS X. + (Fedor Indutny) + + +2013.08.22, Version 0.10.14 (Stable), 15d64132151c18b26346afa892444b95e2addad0 + +Changes since version 0.10.13: + +* unix: retry waitpid() on EINTR (Ben Noordhuis) + + +2013.07.26, Version 0.10.13 (Stable), 381312e1fe6fecbabc943ccd56f0e7d114b3d064 Changes since version 0.10.12: diff --git a/src/libuv/README.md b/src/libuv/README.md index 54740ca9..1e1aa25c 100644 --- a/src/libuv/README.md +++ b/src/libuv/README.md @@ -91,12 +91,12 @@ Or: Unix users run - ./gyp_uv -f make + ./gyp_uv.py -f make make -C out Macintosh users run - ./gyp_uv -f xcode + ./gyp_uv.py -f xcode xcodebuild -project uv.xcodeproj -configuration Release -target All Note for UNIX users: compile your project with `-D_LARGEFILE_SOURCE` and diff --git a/src/libuv/build.mk b/src/libuv/build.mk index 6cba169f..a2fdac7d 100644 --- a/src/libuv/build.mk +++ b/src/libuv/build.mk @@ -74,6 +74,7 @@ TESTS= \ test/test-delayed-accept.o \ test/test-dlerror.o \ test/test-embed.o \ + test/test-emfile.o \ test/test-error.o \ test/test-fail-always.o \ test/test-fs.o \ @@ -97,9 +98,11 @@ TESTS= \ test/test-ping-pong.o \ test/test-pipe-bind-error.o \ test/test-pipe-connect-error.o \ + test/test-pipe-server-close.o \ test/test-platform-output.o \ test/test-poll.o \ test/test-poll-close.o \ + test/test-poll-closesocket.o \ test/test-process-title.o \ test/test-ref.o \ test/test-run-nowait.o \ @@ -107,6 +110,7 @@ TESTS= \ test/test-semaphore.o \ test/test-shutdown-close.o \ test/test-shutdown-eof.o \ + test/test-shutdown-twice.o \ test/test-signal.o \ test/test-signal-multiple-loops.o \ test/test-spawn.o \ @@ -114,6 +118,7 @@ TESTS= \ test/test-tcp-bind6-error.o \ test/test-tcp-bind-error.o \ test/test-tcp-close.o \ + test/test-tcp-close-accept.o \ test/test-tcp-close-while-connecting.o \ test/test-tcp-connect6-error.o \ test/test-tcp-connect-error-after-write.o \ @@ -142,6 +147,7 @@ TESTS= \ test/test-udp-send-and-recv.o \ test/test-util.o \ test/test-walk-handles.o \ + test/test-watcher-cross-stop.o \ .PHONY: all bench clean clean-platform distclean test diff --git a/src/libuv/checksparse.sh b/src/libuv/checksparse.sh index 7412c21c..01fac07a 100755 --- a/src/libuv/checksparse.sh +++ b/src/libuv/checksparse.sh @@ -116,6 +116,7 @@ test/test-pass-always.c test/test-ping-pong.c test/test-pipe-bind-error.c test/test-pipe-connect-error.c +test/test-pipe-server-close.c test/test-platform-output.c test/test-poll-close.c test/test-poll.c @@ -133,6 +134,7 @@ test/test-stdio-over-pipes.c test/test-tcp-bind-error.c test/test-tcp-bind6-error.c test/test-tcp-close-while-connecting.c +test/test-tcp-close-accept.c test/test-tcp-close.c test/test-tcp-connect-error-after-write.c test/test-tcp-connect-error.c @@ -161,6 +163,7 @@ test/test-udp-options.c test/test-udp-send-and-recv.c test/test-util.c test/test-walk-handles.c +test/test-watcher-cross-stop.c " case `uname -s` in diff --git a/src/libuv/common.gypi b/src/libuv/common.gypi index 67291fdc..4b240d98 100644 --- a/src/libuv/common.gypi +++ b/src/libuv/common.gypi @@ -171,7 +171,6 @@ 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics - 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof 'PREBINDING': 'NO', # No -Wl,-prebind 'USE_HEADERMAP': 'NO', 'OTHER_CFLAGS': [ diff --git a/src/libuv/config-unix.mk b/src/libuv/config-unix.mk index d230bb25..37c4a72f 100644 --- a/src/libuv/config-unix.mk +++ b/src/libuv/config-unix.mk @@ -85,6 +85,7 @@ ifeq (__clang__,$(shell sh -c "$(CC) -dM -E - nwatchers) return; - nwatchers = next_power_of_two(len); - watchers = realloc(loop->watchers, nwatchers * sizeof(loop->watchers[0])); + /* Preserve fake watcher list and count at the end of the watchers */ + if (loop->watchers != NULL) { + fake_watcher_list = loop->watchers[loop->nwatchers]; + fake_watcher_count = loop->watchers[loop->nwatchers + 1]; + } else { + fake_watcher_list = NULL; + fake_watcher_count = NULL; + } + + nwatchers = next_power_of_two(len + 2) - 2; + watchers = realloc(loop->watchers, + (nwatchers + 2) * sizeof(loop->watchers[0])); if (watchers == NULL) abort(); - for (i = loop->nwatchers; i < nwatchers; i++) watchers[i] = NULL; + watchers[nwatchers] = fake_watcher_list; + watchers[nwatchers + 1] = fake_watcher_count; loop->watchers = watchers; loop->nwatchers = nwatchers; @@ -700,6 +713,9 @@ void uv__io_stop(uv_loop_t* loop, uv__io_t* w, unsigned int events) { void uv__io_close(uv_loop_t* loop, uv__io_t* w) { uv__io_stop(loop, w, UV__POLLIN | UV__POLLOUT); ngx_queue_remove(&w->pending_queue); + + /* Remove stale events for this file descriptor */ + uv__platform_invalidate_fd(loop, w->fd); } diff --git a/src/libuv/src/unix/darwin-proctitle.c b/src/libuv/src/unix/darwin-proctitle.c index c3171a61..037acffb 100644 --- a/src/libuv/src/unix/darwin-proctitle.c +++ b/src/libuv/src/unix/darwin-proctitle.c @@ -36,14 +36,22 @@ int uv__set_process_title(const char* title) { CFStringRef, CFStringRef, CFDictionaryRef*); + typedef CFDictionaryRef (*LSApplicationCheckInType)(int, CFDictionaryRef); + typedef OSStatus (*SetApplicationIsDaemonType)(int); + typedef void (*LSSetApplicationLaunchServicesServerConnectionStatusType)( + uint64_t, void*); CFBundleRef launch_services_bundle; LSGetCurrentApplicationASNType ls_get_current_application_asn; LSSetApplicationInformationItemType ls_set_application_information_item; CFStringRef* display_name_key; - ProcessSerialNumber psn; CFTypeRef asn; CFStringRef display_name; OSStatus err; + CFBundleRef hi_services_bundle; + LSApplicationCheckInType ls_application_check_in; + SetApplicationIsDaemonType set_application_is_daemon; + LSSetApplicationLaunchServicesServerConnectionStatusType + ls_set_application_launch_services_server_connection_status; launch_services_bundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.LaunchServices")); @@ -71,8 +79,36 @@ int uv__set_process_title(const char* title) { if (display_name_key == NULL || *display_name_key == NULL) return -1; - /* Force the process manager to initialize. */ - GetCurrentProcess(&psn); + /* Black 10.9 magic, to remove (Not responding) mark in Activity Monitor */ + hi_services_bundle = + CFBundleGetBundleWithIdentifier(CFSTR("com.apple.HIServices")); + if (hi_services_bundle == NULL) + return -1; + + set_application_is_daemon = CFBundleGetFunctionPointerForName( + hi_services_bundle, + CFSTR("SetApplicationIsDaemon")); + ls_application_check_in = CFBundleGetFunctionPointerForName( + launch_services_bundle, + CFSTR("_LSApplicationCheckIn")); + ls_set_application_launch_services_server_connection_status = + CFBundleGetFunctionPointerForName( + launch_services_bundle, + CFSTR("_LSSetApplicationLaunchServicesServerConnectionStatus")); + if (set_application_is_daemon == NULL || + ls_application_check_in == NULL || + ls_set_application_launch_services_server_connection_status == NULL) { + return -1; + } + + if (set_application_is_daemon(1) != noErr) + return -1; + + ls_set_application_launch_services_server_connection_status(0, NULL); + + /* Check into process manager?! */ + ls_application_check_in(-2, + CFBundleGetInfoDictionary(CFBundleGetMainBundle())); display_name = CFStringCreateWithCString(NULL, title, kCFStringEncodingUTF8); asn = ls_get_current_application_asn(); diff --git a/src/libuv/src/unix/darwin.c b/src/libuv/src/unix/darwin.c index 77e662f4..f37d58df 100644 --- a/src/libuv/src/unix/darwin.c +++ b/src/libuv/src/unix/darwin.c @@ -179,12 +179,14 @@ void uv__cf_loop_signal(uv_loop_t* loop, cf_loop_signal_cb cb, void* arg) { uint64_t uv__hrtime(void) { - mach_timebase_info_data_t info; + static mach_timebase_info_data_t info; - if (mach_timebase_info(&info) != KERN_SUCCESS) - abort(); + if ((ACCESS_ONCE(uint32_t, info.numer) == 0 || + ACCESS_ONCE(uint32_t, info.denom) == 0) && + mach_timebase_info(&info) != KERN_SUCCESS) + abort(); - return mach_absolute_time() * info.numer / info.denom; + return mach_absolute_time() * info.numer / info.denom; } diff --git a/src/libuv/src/unix/error.c b/src/libuv/src/unix/error.c index 05ab4820..f54ffdbc 100644 --- a/src/libuv/src/unix/error.c +++ b/src/libuv/src/unix/error.c @@ -104,6 +104,12 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case EROFS: return UV_EROFS; case ENOMEM: return UV_ENOMEM; case EDQUOT: return UV_ENOSPC; + case EFBIG: return UV_EFBIG; + case ENOPROTOOPT: return UV_ENOPROTOOPT; + case ETXTBSY: return UV_ETXTBSY; + case ERANGE: return UV_ERANGE; + case ENXIO: return UV_ENXIO; + case EMLINK: return UV_EMLINK; default: return UV_UNKNOWN; } UNREACHABLE(); diff --git a/src/libuv/src/unix/fs.c b/src/libuv/src/unix/fs.c index dde1d3a8..4cfa6b80 100644 --- a/src/libuv/src/unix/fs.c +++ b/src/libuv/src/unix/fs.c @@ -202,9 +202,12 @@ static ssize_t uv__fs_readdir(uv_fs_t* req) { int i; int n; + dents = NULL; n = scandir(req->path, &dents, uv__fs_readdir_filter, alphasort); - if (n == -1 || n == 0) + if (n == 0) + goto out; /* osx still needs to deallocate some memory */ + else if (n == -1) return n; len = 0; @@ -232,7 +235,7 @@ static ssize_t uv__fs_readdir(uv_fs_t* req) { out: saved_errno = errno; - { + if (dents != NULL) { for (i = 0; i < n; i++) free(dents[i]); free(dents); @@ -302,7 +305,7 @@ static ssize_t uv__fs_sendfile_emul(uv_fs_t* req) { * * 1. Read errors are reported only if nsent==0, otherwise we return nsent. * The user needs to know that some data has already been sent, to stop - * him from sending it twice. + * them from sending it twice. * * 2. Write errors are always reported. Write errors are bad because they * mean data loss: we've read data but now we can't write it out. diff --git a/src/libuv/src/unix/fsevents.c b/src/libuv/src/unix/fsevents.c index b6d27467..d8603242 100644 --- a/src/libuv/src/unix/fsevents.c +++ b/src/libuv/src/unix/fsevents.c @@ -223,9 +223,7 @@ int uv__fsevents_init(uv_fs_event_t* handle) { handle->realpath_len = strlen(handle->realpath); /* Initialize paths array */ - path = CFStringCreateWithCString(NULL, - handle->filename, - CFStringGetSystemEncoding()); + path = CFStringCreateWithFileSystemRepresentation(NULL, handle->filename); paths = CFArrayCreate(NULL, (const void**)&path, 1, NULL); latency = 0.15; diff --git a/src/libuv/src/unix/getaddrinfo.c b/src/libuv/src/unix/getaddrinfo.c index 283d295f..287c9940 100644 --- a/src/libuv/src/unix/getaddrinfo.c +++ b/src/libuv/src/unix/getaddrinfo.c @@ -34,6 +34,8 @@ static void uv__getaddrinfo_work(struct uv__work* w) { req->service, req->hints, &req->res); + if (req->retcode == EAI_SYSTEM) + req->retcode = -errno; } @@ -67,7 +69,10 @@ static void uv__getaddrinfo_done(struct uv__work* w, int status) { req->service = NULL; req->hostname = NULL; - if (req->retcode == 0) { + if (req->retcode < 0) { + /* EAI_SYSTEM error */ + uv__set_sys_error(req->loop, -req->retcode); + } else if (req->retcode == 0) { /* OK */ #if defined(EAI_NODATA) /* FreeBSD deprecated EAI_NODATA */ } else if (req->retcode == EAI_NONAME || req->retcode == EAI_NODATA) { diff --git a/src/libuv/src/unix/internal.h b/src/libuv/src/unix/internal.h index 61cb1ec1..35aa894a 100644 --- a/src/libuv/src/unix/internal.h +++ b/src/libuv/src/unix/internal.h @@ -183,6 +183,7 @@ uint64_t uv__hrtime(void); int uv__kqueue_init(uv_loop_t* loop); int uv__platform_loop_init(uv_loop_t* loop, int default_loop); void uv__platform_loop_delete(uv_loop_t* loop); +void uv__platform_invalidate_fd(uv_loop_t* loop, int fd); /* various */ void uv__async_close(uv_async_t* handle); diff --git a/src/libuv/src/unix/kqueue.c b/src/libuv/src/unix/kqueue.c index 378903a6..124f4fd5 100644 --- a/src/libuv/src/unix/kqueue.c +++ b/src/libuv/src/unix/kqueue.c @@ -162,9 +162,15 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { nevents = 0; + assert(loop->watchers != NULL); + loop->watchers[loop->nwatchers] = (void*) events; + loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds; for (i = 0; i < nfds; i++) { ev = events + i; fd = ev->ident; + /* Skip invalidated events, see uv__platform_invalidate_fd */ + if (fd == -1) + continue; w = loop->watchers[fd]; if (w == NULL) { @@ -191,7 +197,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { revents = 0; if (ev->filter == EVFILT_READ) { - if (w->events & UV__POLLIN) { + if (w->pevents & UV__POLLIN) { revents |= UV__POLLIN; w->rcount = ev->data; } else { @@ -205,7 +211,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { } if (ev->filter == EVFILT_WRITE) { - if (w->events & UV__POLLOUT) { + if (w->pevents & UV__POLLOUT) { revents |= UV__POLLOUT; w->wcount = ev->data; } else { @@ -227,6 +233,8 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { w->cb(loop, w, revents); nevents++; } + loop->watchers[loop->nwatchers] = NULL; + loop->watchers[loop->nwatchers + 1] = NULL; if (nevents != 0) { if (nfds == ARRAY_SIZE(events) && --count != 0) { @@ -255,6 +263,25 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { } +void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { + struct kevent* events; + uintptr_t i; + uintptr_t nfds; + + assert(loop->watchers != NULL); + + events = (struct kevent*) loop->watchers[loop->nwatchers]; + nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1]; + if (events == NULL) + return; + + /* Invalidate events with same file descriptor */ + for (i = 0; i < nfds; i++) + if ((int) events[i].ident == fd) + events[i].ident = -1; +} + + static void uv__fs_event(uv_loop_t* loop, uv__io_t* w, unsigned int fflags) { uv_fs_event_t* handle; struct kevent ev; @@ -332,10 +359,10 @@ int uv_fs_event_init(uv_loop_t* loop, void uv__fs_event_close(uv_fs_event_t* handle) { #if defined(__APPLE__) if (uv__fsevents_close(handle)) - uv__io_stop(handle->loop, &handle->event_watcher, UV__POLLIN); -#else - uv__io_stop(handle->loop, &handle->event_watcher, UV__POLLIN); #endif /* defined(__APPLE__) */ + { + uv__io_close(handle->loop, &handle->event_watcher); + } uv__handle_stop(handle); diff --git a/src/libuv/src/unix/linux-core.c b/src/libuv/src/unix/linux-core.c index e4c34a18..4846bd3f 100644 --- a/src/libuv/src/unix/linux-core.c +++ b/src/libuv/src/unix/linux-core.c @@ -97,6 +97,33 @@ void uv__platform_loop_delete(uv_loop_t* loop) { } +void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { + struct uv__epoll_event* events; + struct uv__epoll_event dummy; + uintptr_t i; + uintptr_t nfds; + + assert(loop->watchers != NULL); + + events = (struct uv__epoll_event*) loop->watchers[loop->nwatchers]; + nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1]; + if (events != NULL) + /* Invalidate events with same file descriptor */ + for (i = 0; i < nfds; i++) + if ((int) events[i].data == fd) + events[i].data = -1; + + /* Remove the file descriptor from the epoll. + * This avoids a problem where the same file description remains open + * in another process, causing repeated junk epoll events. + * + * We pass in a dummy epoll_event, to work around a bug in old kernels. + */ + if (loop->backend_fd >= 0) + uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_DEL, fd, &dummy); +} + + void uv__io_poll(uv_loop_t* loop, int timeout) { struct uv__epoll_event events[1024]; struct uv__epoll_event* pe; @@ -111,6 +138,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { int fd; int op; int i; + static int no_epoll_wait; if (loop->nfds == 0) { assert(ngx_queue_empty(&loop->watcher_queue)); @@ -157,10 +185,22 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { count = 48; /* Benchmarks suggest this gives the best throughput. */ for (;;) { - nfds = uv__epoll_wait(loop->backend_fd, - events, - ARRAY_SIZE(events), - timeout); + if (!no_epoll_wait) { + nfds = uv__epoll_wait(loop->backend_fd, + events, + ARRAY_SIZE(events), + timeout); + if (nfds == -1 && errno == ENOSYS) { + no_epoll_wait = 1; + continue; + } + } else { + nfds = uv__epoll_pwait(loop->backend_fd, + events, + ARRAY_SIZE(events), + timeout, + NULL); + } /* Update loop->time unconditionally. It's tempting to skip the update when * timeout == 0 (i.e. non-blocking poll) but there is no guarantee that the @@ -189,10 +229,17 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { nevents = 0; + assert(loop->watchers != NULL); + loop->watchers[loop->nwatchers] = (void*) events; + loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds; for (i = 0; i < nfds; i++) { pe = events + i; fd = pe->data; + /* Skip invalidated events, see uv__platform_invalidate_fd */ + if (fd == -1) + continue; + assert(fd >= 0); assert((unsigned) fd < loop->nwatchers); @@ -208,9 +255,38 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { continue; } - w->cb(loop, w, pe->events); - nevents++; + /* Give users only events they're interested in. Prevents spurious + * callbacks when previous callback invocation in this loop has stopped + * the current watcher. Also, filters out events that users has not + * requested us to watch. + */ + pe->events &= w->pevents | UV__POLLERR | UV__POLLHUP; + + /* Work around an epoll quirk where it sometimes reports just the + * EPOLLERR or EPOLLHUP event. In order to force the event loop to + * move forward, we merge in the read/write events that the watcher + * is interested in; uv__read() and uv__write() will then deal with + * the error or hangup in the usual fashion. + * + * Note to self: happens when epoll reports EPOLLIN|EPOLLHUP, the user + * reads the available data, calls uv_read_stop(), then sometime later + * calls uv_read_start() again. By then, libuv has forgotten about the + * hangup and the kernel won't report EPOLLIN again because there's + * nothing left to read. If anything, libuv is to blame here. The + * current hack is just a quick bandaid; to properly fix it, libuv + * needs to remember the error/hangup event. We should get that for + * free when we switch over to edge-triggered I/O. + */ + if (pe->events == UV__EPOLLERR || pe->events == UV__EPOLLHUP) + pe->events |= w->pevents & (UV__EPOLLIN | UV__EPOLLOUT); + + if (pe->events != 0) { + w->cb(loop, w, pe->events); + nevents++; + } } + loop->watchers[loop->nwatchers] = NULL; + loop->watchers[loop->nwatchers + 1] = NULL; if (nevents != 0) { if (nfds == ARRAY_SIZE(events) && --count != 0) { @@ -546,9 +622,11 @@ static int read_times(unsigned int numcpus, uv_cpu_info_t* ci) { /* skip "cpu " marker */ { - unsigned int n = num; + unsigned int n; + int r = sscanf(buf, "cpu%u ", &n); + assert(r == 1); + (void) r; /* silence build warning */ for (len = sizeof("cpu0"); n /= 10; len++); - assert(sscanf(buf, "cpu%u ", &n) == 1 && n == num); } /* Line contains user, nice, system, idle, iowait, irq, softirq, steal, @@ -575,6 +653,7 @@ static int read_times(unsigned int numcpus, uv_cpu_info_t* ci) { ci[num++].cpu_times = ts; } fclose(fp); + assert(num == numcpus); return 0; } diff --git a/src/libuv/src/unix/openbsd.c b/src/libuv/src/unix/openbsd.c index 4dfcd76b..ec83a818 100644 --- a/src/libuv/src/unix/openbsd.c +++ b/src/libuv/src/unix/openbsd.c @@ -223,7 +223,7 @@ uv_err_t uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { uint64_t info[CPUSTATES]; char model[512]; int numcpus = 1; - static int which[] = {CTL_HW,HW_MODEL,0}; + int which[] = {CTL_HW,HW_MODEL,0}; size_t size; int i; uv_cpu_info_t* cpu_info; diff --git a/src/libuv/src/unix/process.c b/src/libuv/src/unix/process.c index 267ecb64..19686a29 100644 --- a/src/libuv/src/unix/process.c +++ b/src/libuv/src/unix/process.c @@ -73,7 +73,9 @@ static void uv__chld(uv_signal_t* handle, int signum) { assert(signum == SIGCHLD); for (;;) { - pid = waitpid(-1, &status, WNOHANG); + do + pid = waitpid(-1, &status, WNOHANG); + while (pid == -1 && errno == EINTR); if (pid == 0) return; @@ -184,7 +186,7 @@ int uv__make_pipe(int fds[2], int flags) { /* * Used for initializing stdio streams like options.stdin_stream. Returns - * zero on success. + * zero on success. See also the cleanup section in uv_spawn(). */ static int uv__process_init_stdio(uv_stdio_container_t* container, int fds[2]) { int mask; @@ -288,49 +290,54 @@ static void uv__process_child_init(uv_process_options_t options, close_fd = pipes[fd][0]; use_fd = pipes[fd][1]; - if (use_fd >= 0) - close(close_fd); - else if (fd >= 3) - continue; - else { - /* redirect stdin, stdout and stderr to /dev/null even if UV_IGNORE is - * set - */ - use_fd = open("/dev/null", fd == 0 ? O_RDONLY : O_RDWR); - - if (use_fd == -1) { - uv__write_int(error_fd, errno); - perror("failed to open stdio"); - _exit(127); + if (use_fd < 0) { + if (fd >= 3) + continue; + else { + /* redirect stdin, stdout and stderr to /dev/null even if UV_IGNORE is + * set + */ + use_fd = open("/dev/null", fd == 0 ? O_RDONLY : O_RDWR); + close_fd = use_fd; + + if (use_fd == -1) { + uv__write_int(error_fd, errno); + _exit(127); + } } } if (fd == use_fd) uv__cloexec(use_fd, 0); - else { + else dup2(use_fd, fd); - close(use_fd); - } if (fd <= 2) uv__nonblock(fd, 0); + + if (close_fd >= stdio_count) + close(close_fd); + } + + for (fd = 0; fd < stdio_count; fd++) { + use_fd = pipes[fd][1]; + + if (use_fd >= 0 && fd != use_fd) + close(use_fd); } if (options.cwd && chdir(options.cwd)) { uv__write_int(error_fd, errno); - perror("chdir()"); _exit(127); } if ((options.flags & UV_PROCESS_SETGID) && setgid(options.gid)) { uv__write_int(error_fd, errno); - perror("setgid()"); _exit(127); } if ((options.flags & UV_PROCESS_SETUID) && setuid(options.uid)) { uv__write_int(error_fd, errno); - perror("setuid()"); _exit(127); } @@ -340,7 +347,6 @@ static void uv__process_child_init(uv_process_options_t options, execvp(options.file, options.args); uv__write_int(error_fd, errno); - perror("execvp()"); _exit(127); } @@ -461,11 +467,18 @@ int uv_spawn(uv_loop_t* loop, error: uv__set_sys_error(process->loop, errno); - for (i = 0; i < stdio_count; i++) { - close(pipes[i][0]); - close(pipes[i][1]); + if (pipes != NULL) { + for (i = 0; i < stdio_count; i++) { + if (i < options.stdio_count) + if (options.stdio[i].flags & (UV_INHERIT_FD | UV_INHERIT_STREAM)) + continue; + if (pipes[i][0] != -1) + close(pipes[i][0]); + if (pipes[i][1] != -1) + close(pipes[i][1]); + } + free(pipes); } - free(pipes); return -1; } diff --git a/src/libuv/src/unix/signal.c b/src/libuv/src/unix/signal.c index 22c7783b..aa84ff2f 100644 --- a/src/libuv/src/unix/signal.c +++ b/src/libuv/src/unix/signal.c @@ -141,7 +141,10 @@ static void uv__signal_handler(int signum) { saved_errno = errno; memset(&msg, 0, sizeof msg); - uv__signal_lock(); + if (uv__signal_lock()) { + errno = saved_errno; + return; + } for (handle = uv__signal_first_handle(signum); handle != NULL && handle->signum == signum; diff --git a/src/libuv/src/unix/stream.c b/src/libuv/src/unix/stream.c index c9df9797..81933e64 100644 --- a/src/libuv/src/unix/stream.c +++ b/src/libuv/src/unix/stream.c @@ -53,6 +53,10 @@ struct uv__stream_select_s { int fake_fd; int int_fd; int fd; + fd_set* sread; + size_t sread_sz; + fd_set* swrite; + size_t swrite_sz; }; #endif /* defined(__APPLE__) */ @@ -131,8 +135,6 @@ static void uv__stream_osx_select(void* arg) { uv_stream_t* stream; uv__stream_select_t* s; char buf[1024]; - fd_set sread; - fd_set swrite; int events; int fd; int r; @@ -153,17 +155,17 @@ static void uv__stream_osx_select(void* arg) { break; /* Watch fd using select(2) */ - FD_ZERO(&sread); - FD_ZERO(&swrite); + memset(s->sread, 0, s->sread_sz); + memset(s->swrite, 0, s->swrite_sz); if (uv_is_readable(stream)) - FD_SET(fd, &sread); + FD_SET(fd, s->sread); if (uv_is_writable(stream)) - FD_SET(fd, &swrite); - FD_SET(s->int_fd, &sread); + FD_SET(fd, s->swrite); + FD_SET(s->int_fd, s->sread); /* Wait indefinitely for fd events */ - r = select(max_fd + 1, &sread, &swrite, NULL, NULL); + r = select(max_fd + 1, s->sread, s->swrite, NULL, NULL); if (r == -1) { if (errno == EINTR) continue; @@ -177,7 +179,7 @@ static void uv__stream_osx_select(void* arg) { continue; /* Empty socketpair's buffer in case of interruption */ - if (FD_ISSET(s->int_fd, &sread)) + if (FD_ISSET(s->int_fd, s->sread)) while (1) { r = read(s->int_fd, buf, sizeof(buf)); @@ -198,12 +200,12 @@ static void uv__stream_osx_select(void* arg) { /* Handle events */ events = 0; - if (FD_ISSET(fd, &sread)) + if (FD_ISSET(fd, s->sread)) events |= UV__POLLIN; - if (FD_ISSET(fd, &swrite)) + if (FD_ISSET(fd, s->swrite)) events |= UV__POLLOUT; - assert(events != 0 || FD_ISSET(s->int_fd, &sread)); + assert(events != 0 || FD_ISSET(s->int_fd, s->sread)); if (events != 0) { ACCESS_ONCE(int, s->events) = events; @@ -282,6 +284,11 @@ int uv__stream_try_select(uv_stream_t* stream, int* fd) { int fds[2]; int ret; int kq; + int old_fd; + int max_fd; + size_t sread_sz; + size_t swrite_sz; + int err; kq = kqueue(); if (kq == -1) { @@ -305,55 +312,92 @@ int uv__stream_try_select(uv_stream_t* stream, int* fd) { return 0; /* At this point we definitely know that this fd won't work with kqueue */ - s = malloc(sizeof(*s)); - if (s == NULL) - return uv__set_artificial_error(stream->loop, UV_ENOMEM); + + /* + * Create fds for io watcher and to interrupt the select() loop. + * NOTE: do it ahead of malloc below to allocate enough space for fd_sets + */ + if (socketpair(AF_UNIX, SOCK_STREAM, 0, fds)) + return uv__set_sys_error(stream->loop, errno); + + max_fd = *fd; + if (fds[1] > max_fd) + max_fd = fds[1]; + + sread_sz = (max_fd + NBBY) / NBBY; + swrite_sz = sread_sz; + + s = malloc(sizeof(*s) + sread_sz + swrite_sz); + if (s == NULL) { + err = uv__set_artificial_error(stream->loop, UV_ENOMEM); + goto failed_malloc; + } s->events = 0; s->fd = *fd; + s->sread = (fd_set*) ((char*) s + sizeof(*s)); + s->sread_sz = sread_sz; + s->swrite = (fd_set*) ((char*) s->sread + sread_sz); + s->swrite_sz = swrite_sz; - if (uv_async_init(stream->loop, &s->async, uv__stream_osx_select_cb)) { - SAVE_ERRNO(free(s)); - return uv__set_sys_error(stream->loop, errno); - } + err = uv_async_init(stream->loop, &s->async, uv__stream_osx_select_cb); + if (err) + goto failed_async_init; s->async.flags |= UV__HANDLE_INTERNAL; uv__handle_unref(&s->async); - if (uv_sem_init(&s->close_sem, 0)) - goto fatal1; - - if (uv_sem_init(&s->async_sem, 0)) - goto fatal2; + err = uv_sem_init(&s->close_sem, 0); + if (err != 0) { + err = uv__set_sys_error(stream->loop, UV_UNKNOWN); + goto failed_close_sem_init; + } - /* Create fds for io watcher and to interrupt the select() loop. */ - if (socketpair(AF_UNIX, SOCK_STREAM, 0, fds)) - goto fatal3; + err = uv_sem_init(&s->async_sem, 0); + if (err != 0) { + err = uv__set_sys_error(stream->loop, UV_UNKNOWN); + goto failed_async_sem_init; + } s->fake_fd = fds[0]; s->int_fd = fds[1]; - if (uv_thread_create(&s->thread, uv__stream_osx_select, stream)) - goto fatal4; - + old_fd = *fd; s->stream = stream; stream->select = s; *fd = s->fake_fd; + err = uv_thread_create(&s->thread, uv__stream_osx_select, stream); + if (err != 0) { + err = uv__set_sys_error(stream->loop, UV_UNKNOWN); + goto failed_thread_create; + } + return 0; -fatal4: - close(s->fake_fd); - close(s->int_fd); - s->fake_fd = -1; - s->int_fd = -1; -fatal3: +failed_thread_create: + s->stream = NULL; + stream->select = NULL; + *fd = old_fd; uv_sem_destroy(&s->async_sem); -fatal2: + +failed_async_sem_init: uv_sem_destroy(&s->close_sem); -fatal1: + +failed_close_sem_init: + close(fds[0]); + close(fds[1]); uv_close((uv_handle_t*) &s->async, uv__stream_osx_cb_close); - return uv__set_sys_error(stream->loop, errno); + return err; + +failed_async_init: + free(s); + +failed_malloc: + close(fds[0]); + close(fds[1]); + + return err; } #endif /* defined(__APPLE__) */ @@ -679,8 +723,8 @@ static void uv__write_req_finish(uv_write_t* req) { /* Only free when there was no error. On error, we touch up write_queue_size * right before making the callback. The reason we don't do that right away * is that a write_queue_size > 0 is our only way to signal to the user that - * he should stop writing - which he should if we got an error. Something to - * revisit in future revisions of the libuv API. + * they should stop writing - which they should if we got an error. Something + * to revisit in future revisions of the libuv API. */ if (req->error == 0) { if (req->bufs != req->bufsml) @@ -1075,6 +1119,7 @@ int uv_shutdown(uv_shutdown_t* req, uv_stream_t* stream, uv_shutdown_cb cb) { if (!(stream->flags & UV_STREAM_WRITABLE) || stream->flags & UV_STREAM_SHUT || + stream->flags & UV_STREAM_SHUTTING || stream->flags & UV_CLOSED || stream->flags & UV_CLOSING) { uv__set_artificial_error(stream->loop, UV_ENOTCONN); diff --git a/src/libuv/src/unix/sunos.c b/src/libuv/src/unix/sunos.c index 69769f65..9030bfa6 100644 --- a/src/libuv/src/unix/sunos.c +++ b/src/libuv/src/unix/sunos.c @@ -28,9 +28,6 @@ #include #include -#define SUNOS_NO_IFADDRS - - #ifndef SUNOS_NO_IFADDRS # include #endif @@ -90,6 +87,25 @@ void uv__platform_loop_delete(uv_loop_t* loop) { } +void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { + struct port_event* events; + uintptr_t i; + uintptr_t nfds; + + assert(loop->watchers != NULL); + + events = (struct port_event*) loop->watchers[loop->nwatchers]; + nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1]; + if (events == NULL) + return; + + /* Invalidate events with same file descriptor */ + for (i = 0; i < nfds; i++) + if ((int) events[i].portev_object == fd) + events[i].portev_object = -1; +} + + void uv__io_poll(uv_loop_t* loop, int timeout) { struct port_event events[1024]; struct port_event* pe; @@ -176,10 +192,17 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { nevents = 0; + assert(loop->watchers != NULL); + loop->watchers[loop->nwatchers] = (void*) events; + loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds; for (i = 0; i < nfds; i++) { pe = events + i; fd = pe->portev_object; + /* Skip invalidated events, see uv__platform_invalidate_fd */ + if (fd == -1) + continue; + assert(fd >= 0); assert((unsigned) fd < loop->nwatchers); @@ -196,6 +219,8 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { if (w->pevents != 0 && ngx_queue_empty(&w->watcher_queue)) ngx_queue_insert_tail(&loop->watcher_queue, &w->watcher_queue); } + loop->watchers[loop->nwatchers] = NULL; + loop->watchers[loop->nwatchers + 1] = NULL; if (nevents != 0) { if (nfds == ARRAY_SIZE(events) && --count != 0) { @@ -278,9 +303,9 @@ void uv_loadavg(double avg[3]) { #if defined(PORT_SOURCE_FILE) -static void uv__fs_event_rearm(uv_fs_event_t *handle) { +static int uv__fs_event_rearm(uv_fs_event_t* handle) { if (handle->fd == -1) - return; + return 0; if (port_associate(handle->loop->fs_fd, PORT_SOURCE_FILE, @@ -288,8 +313,10 @@ static void uv__fs_event_rearm(uv_fs_event_t *handle) { FILE_ATTRIB | FILE_MODIFIED, handle) == -1) { uv__set_sys_error(handle->loop, errno); + return -1; } handle->fd = PORT_LOADED; + return 0; } @@ -336,11 +363,12 @@ static void uv__fs_event_read(uv_loop_t* loop, assert(events != 0); handle->fd = PORT_FIRED; handle->cb(handle, NULL, events, 0); + + if (handle->fd != PORT_DELETED) + if (uv__fs_event_rearm(handle) != 0) + handle->cb(handle, NULL, 0, -1); } while (handle->fd != PORT_DELETED); - - if (handle != NULL && handle->fd != PORT_DELETED) - uv__fs_event_rearm(handle); } @@ -362,14 +390,16 @@ int uv_fs_event_init(uv_loop_t* loop, } uv__handle_init(loop, (uv_handle_t*)handle, UV_FS_EVENT); - uv__handle_start(handle); /* FIXME shouldn't start automatically */ handle->filename = strdup(filename); handle->fd = PORT_UNUSED; handle->cb = cb; memset(&handle->fo, 0, sizeof handle->fo); handle->fo.fo_name = handle->filename; - uv__fs_event_rearm(handle); + if (uv__fs_event_rearm(handle) != 0) + return -1; + + uv__handle_start(handle); /* FIXME shouldn't start automatically */ if (first_run) { uv__io_init(&loop->fs_event_watcher, uv__fs_event_read, portfd); diff --git a/src/libuv/src/unix/udp.c b/src/libuv/src/unix/udp.c index 3fb8af93..e83e6133 100644 --- a/src/libuv/src/unix/udp.c +++ b/src/libuv/src/unix/udp.c @@ -286,6 +286,31 @@ static void uv__udp_sendmsg(uv_loop_t* loop, } +/* On the BSDs, SO_REUSEPORT implies SO_REUSEADDR but with some additional + * refinements for programs that use multicast. + * + * Linux as of 3.9 has a SO_REUSEPORT socket option but with semantics that + * are different from the BSDs: it _shares_ the port rather than steal it + * from the current listener. While useful, it's not something we can emulate + * on other platforms so we don't enable it. + */ +static int uv__set_reuse(int fd) { + int yes; + +#if defined(SO_REUSEPORT) && !defined(__linux__) + yes = 1; + if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes))) + return -errno; +#else + yes = 1; + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes))) + return -errno; +#endif + + return 0; +} + + static int uv__bind(uv_udp_t* handle, int domain, struct sockaddr* addr, @@ -293,6 +318,7 @@ static int uv__bind(uv_udp_t* handle, unsigned flags) { int saved_errno; int status; + int err; int yes; int fd; @@ -321,27 +347,11 @@ static int uv__bind(uv_udp_t* handle, } fd = handle->io_watcher.fd; - yes = 1; - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof yes) == -1) { - uv__set_sys_error(handle->loop, errno); - goto out; - } - - /* On the BSDs, SO_REUSEADDR lets you reuse an address that's in the TIME_WAIT - * state (i.e. was until recently tied to a socket) while SO_REUSEPORT lets - * multiple processes bind to the same address. Yes, it's something of a - * misnomer but then again, SO_REUSEADDR was already taken. - * - * None of the above applies to Linux: SO_REUSEADDR implies SO_REUSEPORT on - * Linux and hence it does not have SO_REUSEPORT at all. - */ -#ifdef SO_REUSEPORT - yes = 1; - if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof yes) == -1) { - uv__set_sys_error(handle->loop, errno); + err = uv__set_reuse(fd); + if (err) { + uv__set_sys_error(handle->loop, -err); goto out; } -#endif if (flags & UV_UDP_IPV6ONLY) { #ifdef IPV6_V6ONLY @@ -481,7 +491,7 @@ int uv__udp_bind6(uv_udp_t* handle, struct sockaddr_in6 addr, unsigned flags) { int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock) { int saved_errno; int status; - int yes; + int err; saved_errno = errno; status = -1; @@ -492,27 +502,11 @@ int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock) { goto out; } - yes = 1; - if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof yes) == -1) { - uv__set_sys_error(handle->loop, errno); - goto out; - } - - /* On the BSDs, SO_REUSEADDR lets you reuse an address that's in the TIME_WAIT - * state (i.e. was until recently tied to a socket) while SO_REUSEPORT lets - * multiple processes bind to the same address. Yes, it's something of a - * misnomer but then again, SO_REUSEADDR was already taken. - * - * None of the above applies to Linux: SO_REUSEADDR implies SO_REUSEPORT on - * Linux and hence it does not have SO_REUSEPORT at all. - */ -#ifdef SO_REUSEPORT - yes = 1; - if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof yes) == -1) { - uv__set_sys_error(handle->loop, errno); + err = uv__set_reuse(sock); + if (err) { + uv__set_sys_error(handle->loop, -err); goto out; } -#endif handle->io_watcher.fd = sock; status = 0; diff --git a/src/libuv/src/version.c b/src/libuv/src/version.c index 1010b2af..ca964008 100644 --- a/src/libuv/src/version.c +++ b/src/libuv/src/version.c @@ -34,7 +34,7 @@ #define UV_VERSION_MAJOR 0 #define UV_VERSION_MINOR 10 -#define UV_VERSION_PATCH 13 +#define UV_VERSION_PATCH 29 #define UV_VERSION_IS_RELEASE 1 diff --git a/src/libuv/src/win/error.c b/src/libuv/src/win/error.c index 2a72ff2f..820c2603 100644 --- a/src/libuv/src/win/error.c +++ b/src/libuv/src/win/error.c @@ -128,6 +128,7 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case ERROR_DIRECTORY: return UV_ENOENT; case ERROR_FILE_NOT_FOUND: return UV_ENOENT; case ERROR_INVALID_NAME: return UV_ENOENT; + case ERROR_INVALID_DRIVE: return UV_ENOENT; case ERROR_INVALID_REPARSE_DATA: return UV_ENOENT; case ERROR_MOD_NOT_FOUND: return UV_ENOENT; case ERROR_PATH_NOT_FOUND: return UV_ENOENT; diff --git a/src/libuv/src/win/fs-event.c b/src/libuv/src/win/fs-event.c index 1954cb09..e1f79abd 100644 --- a/src/libuv/src/win/fs-event.c +++ b/src/libuv/src/win/fs-event.c @@ -339,7 +339,8 @@ void uv_process_fs_event_req(uv_loop_t* loop, uv_req_t* req, uv_fatal_error(ERROR_OUTOFMEMORY, "malloc"); } - _snwprintf(filenamew, size, L"%s\\%s", handle->dirw, + _snwprintf(filenamew, size, L"%s\\%.*s", handle->dirw, + file_info->FileNameLength / sizeof(WCHAR), file_info->FileName); filenamew[size - 1] = L'\0'; diff --git a/src/libuv/src/win/fs.c b/src/libuv/src/win/fs.c index e78bc1b8..7f3704e8 100644 --- a/src/libuv/src/win/fs.c +++ b/src/libuv/src/win/fs.c @@ -41,33 +41,41 @@ #define QUEUE_FS_TP_JOB(loop, req) \ - if (!QueueUserWorkItem(&uv_fs_thread_proc, \ - req, \ - WT_EXECUTEDEFAULT)) { \ - uv__set_sys_error((loop), GetLastError()); \ - return -1; \ - } \ - uv__req_register(loop, req); + do { \ + if (!QueueUserWorkItem(&uv_fs_thread_proc, \ + req, \ + WT_EXECUTEDEFAULT)) { \ + uv__set_sys_error((loop), GetLastError()); \ + return -1; \ + } \ + uv__req_register(loop, req); \ + } while (0) #define SET_UV_LAST_ERROR_FROM_REQ(req) \ - uv__set_error(req->loop, req->errorno, req->sys_errno_); + uv__set_error(req->loop, req->errorno, req->sys_errno_) #define SET_REQ_RESULT(req, result_value) \ - req->result = (result_value); \ - if (req->result == -1) { \ - req->sys_errno_ = _doserrno; \ - req->errorno = uv_translate_sys_error(req->sys_errno_); \ - } + do { \ + req->result = (result_value); \ + if (req->result == -1) { \ + req->sys_errno_ = _doserrno; \ + req->errorno = uv_translate_sys_error(req->sys_errno_); \ + } \ + } while (0) #define SET_REQ_WIN32_ERROR(req, sys_errno) \ - req->result = -1; \ - req->sys_errno_ = (sys_errno); \ - req->errorno = uv_translate_sys_error(req->sys_errno_); + do { \ + req->result = -1; \ + req->sys_errno_ = (sys_errno); \ + req->errorno = uv_translate_sys_error(req->sys_errno_); \ + } while (0) #define SET_REQ_UV_ERROR(req, uv_errno, sys_errno) \ - req->result = -1; \ - req->sys_errno_ = (sys_errno); \ - req->errorno = (uv_errno); + do { \ + req->result = -1; \ + req->sys_errno_ = (sys_errno); \ + req->errorno = (uv_errno); \ + } while (0) #define VERIFY_FD(fd, req) \ if (fd == -1) { \ @@ -78,7 +86,7 @@ } #define FILETIME_TO_TIME_T(filetime) \ - ((*((uint64_t*) &(filetime)) - 116444736000000000ULL) / 10000000ULL); + ((*((uint64_t*) &(filetime)) - 116444736000000000ULL) / 10000000ULL) #define TIME_T_TO_FILETIME(time, filetime_ptr) \ do { \ @@ -392,7 +400,7 @@ void fs__open(uv_fs_t* req) { DWORD disposition; DWORD attributes = 0; HANDLE file; - int result, current_umask; + int fd, current_umask; int flags = req->file_flags; /* Obtain the active umask. umask() never fails and returns the previous */ @@ -413,8 +421,7 @@ void fs__open(uv_fs_t* req) { access = FILE_GENERIC_READ | FILE_GENERIC_WRITE; break; default: - result = -1; - goto end; + goto einval; } if (flags & _O_APPEND) { @@ -451,8 +458,7 @@ void fs__open(uv_fs_t* req) { disposition = CREATE_ALWAYS; break; default: - result = -1; - goto end; + goto einval; } attributes |= FILE_ATTRIBUTE_NORMAL; @@ -481,8 +487,7 @@ void fs__open(uv_fs_t* req) { attributes |= FILE_FLAG_RANDOM_ACCESS; break; default: - result = -1; - goto end; + goto einval; } /* Setting this flag makes it possible to open a directory. */ @@ -507,11 +512,30 @@ void fs__open(uv_fs_t* req) { } return; } - result = _open_osfhandle((intptr_t) file, flags); -end: - SET_REQ_RESULT(req, result); + + fd = _open_osfhandle((intptr_t) file, flags); + if (fd < 0) { + /* The only known failure mode for _open_osfhandle() is EMFILE, in which + * case GetLastError() will return zero. However we'll try to handle other + * errors as well, should they ever occur. + */ + if (errno == EMFILE) + SET_REQ_UV_ERROR(req, UV_EMFILE, ERROR_TOO_MANY_OPEN_FILES); + else if (GetLastError() != ERROR_SUCCESS) + SET_REQ_WIN32_ERROR(req, GetLastError()); + else + SET_REQ_WIN32_ERROR(req, UV_UNKNOWN); + return; + } + + SET_REQ_RESULT(req, fd); + return; + + einval: + SET_REQ_UV_ERROR(req, UV_EINVAL, ERROR_INVALID_PARAMETER); } + void fs__close(uv_fs_t* req) { int fd = req->fd; int result; @@ -1062,7 +1086,6 @@ static void fs__chmod(uv_fs_t* req) { static void fs__fchmod(uv_fs_t* req) { int fd = req->fd; - int result; HANDLE handle; NTSTATUS nt_status; IO_STATUS_BLOCK io_status; @@ -1070,7 +1093,7 @@ static void fs__fchmod(uv_fs_t* req) { VERIFY_FD(fd, req); - handle = (HANDLE)_get_osfhandle(fd); + handle = (HANDLE) _get_osfhandle(fd); nt_status = pNtQueryInformationFile(handle, &io_status, @@ -1078,9 +1101,9 @@ static void fs__fchmod(uv_fs_t* req) { sizeof file_info, FileBasicInformation); - if (nt_status != STATUS_SUCCESS) { - result = -1; - goto done; + if (!NT_SUCCESS(nt_status)) { + SET_REQ_WIN32_ERROR(req, pRtlNtStatusToDosError(nt_status)); + return; } if (req->mode & _S_IWRITE) { @@ -1095,15 +1118,12 @@ static void fs__fchmod(uv_fs_t* req) { sizeof file_info, FileBasicInformation); - if (nt_status != STATUS_SUCCESS) { - result = -1; - goto done; + if (!NT_SUCCESS(nt_status)) { + SET_REQ_WIN32_ERROR(req, pRtlNtStatusToDosError(nt_status)); + return; } - result = 0; - -done: - SET_REQ_RESULT(req, result); + SET_REQ_SUCCESS(req); } diff --git a/src/libuv/src/win/pipe.c b/src/libuv/src/win/pipe.c index 0fb70eae..ee0c0f88 100644 --- a/src/libuv/src/win/pipe.c +++ b/src/libuv/src/win/pipe.c @@ -1240,9 +1240,9 @@ static void uv_pipe_read_eof(uv_loop_t* loop, uv_pipe_t* handle, uv__set_artificial_error(loop, UV_EOF); if (handle->read2_cb) { - handle->read2_cb(handle, -1, uv_null_buf_, UV_UNKNOWN_HANDLE); + handle->read2_cb(handle, -1, buf, UV_UNKNOWN_HANDLE); } else { - handle->read_cb((uv_stream_t*) handle, -1, uv_null_buf_); + handle->read_cb((uv_stream_t*) handle, -1, buf); } } @@ -1404,7 +1404,7 @@ void uv_process_pipe_read_req(uv_loop_t* loop, uv_pipe_t* handle, break; } } else { - uv_pipe_read_error_or_eof(loop, handle, GetLastError(), uv_null_buf_); + uv_pipe_read_error_or_eof(loop, handle, GetLastError(), buf); break; } } @@ -1480,6 +1480,13 @@ void uv_process_pipe_accept_req(uv_loop_t* loop, uv_pipe_t* handle, assert(handle->type == UV_NAMED_PIPE); + if (handle->flags & UV__HANDLE_CLOSING) { + /* The req->pipeHandle should be freed already in uv_pipe_cleanup(). */ + assert(req->pipeHandle == INVALID_HANDLE_VALUE); + DECREASE_PENDING_REQ_COUNT(handle); + return; + } + if (REQ_SUCCESS(req)) { assert(req->pipeHandle != INVALID_HANDLE_VALUE); req->next_pending = handle->pending_accepts; @@ -1528,9 +1535,9 @@ void uv_process_pipe_shutdown_req(uv_loop_t* loop, uv_pipe_t* handle, UNREGISTER_HANDLE_REQ(loop, handle, req); - /* Initialize and optionally start the eof timer. */ - /* This makes no sense if we've already seen EOF. */ if (handle->flags & UV_HANDLE_READABLE) { + /* Initialize and optionally start the eof timer. Only do this if the */ + /* pipe is readable and we haven't seen EOF come in ourselves. */ eof_timer_init(handle); /* If reading start the timer right now. */ @@ -1538,6 +1545,12 @@ void uv_process_pipe_shutdown_req(uv_loop_t* loop, uv_pipe_t* handle, if (handle->flags & UV_HANDLE_READ_PENDING) { eof_timer_start(handle); } + + } else { + /* This pipe is not readable. We can just close it to let the other end */ + /* know that we're done writing. */ + CloseHandle(handle->handle); + handle->handle = INVALID_HANDLE_VALUE; } if (req->cb) { diff --git a/src/libuv/src/win/poll.c b/src/libuv/src/win/poll.c index f6972f96..76427b01 100644 --- a/src/libuv/src/win/poll.c +++ b/src/libuv/src/win/poll.c @@ -187,7 +187,8 @@ static void uv__fast_poll_process_poll_req(uv_loop_t* loop, uv_poll_t* handle, if (afd_poll_info->Handles[0].Events & AFD_POLL_LOCAL_CLOSE) { /* Stop polling. */ handle->events = 0; - uv__handle_stop(handle); + if (uv__is_active(handle)) + uv__handle_stop(handle); } if (events != 0) { diff --git a/src/libuv/src/win/process-stdio.c b/src/libuv/src/win/process-stdio.c index 89e2cd99..e9cf84da 100644 --- a/src/libuv/src/win/process-stdio.c +++ b/src/libuv/src/win/process-stdio.c @@ -104,12 +104,16 @@ static uv_err_t uv__create_stdio_pipe_pair(uv_loop_t* loop, uv_err_t err; if (flags & UV_READABLE_PIPE) { - server_access |= PIPE_ACCESS_OUTBOUND; + /* The server needs inbound access too, otherwise CreateNamedPipe() */ + /* won't give us the FILE_READ_ATTRIBUTES permission. We need that to */ + /* probe the state of the write buffer when we're trying to shutdown */ + /* the pipe. */ + server_access |= PIPE_ACCESS_OUTBOUND | PIPE_ACCESS_INBOUND; client_access |= GENERIC_READ | FILE_WRITE_ATTRIBUTES; } if (flags & UV_WRITABLE_PIPE) { server_access |= PIPE_ACCESS_INBOUND; - client_access |= GENERIC_WRITE; + client_access |= GENERIC_WRITE | FILE_READ_ATTRIBUTES; } /* Create server pipe handle. */ @@ -163,8 +167,11 @@ static uv_err_t uv__create_stdio_pipe_pair(uv_loop_t* loop, } } - /* The server end is now readable and writable. */ - server_pipe->flags |= UV_HANDLE_READABLE | UV_HANDLE_WRITABLE; + /* The server end is now readable and/or writable. */ + if (flags & UV_READABLE_PIPE) + server_pipe->flags |= UV_HANDLE_WRITABLE; + if (flags & UV_WRITABLE_PIPE) + server_pipe->flags |= UV_HANDLE_READABLE; *child_pipe_ptr = child_pipe; return uv_ok_; diff --git a/src/libuv/src/win/signal.c b/src/libuv/src/win/signal.c index e630cd38..f2938355 100644 --- a/src/libuv/src/win/signal.c +++ b/src/libuv/src/win/signal.c @@ -129,8 +129,10 @@ static uv_err_t uv__signal_register_control_handler() { /* If the console control handler has already been hooked, just add a */ /* reference. */ - if (uv__signal_control_handler_refs > 0) + if (uv__signal_control_handler_refs > 0) { + uv__signal_control_handler_refs++; return uv_ok_; + } if (!SetConsoleCtrlHandler(uv__signal_control_handler, TRUE)) return uv__new_sys_error(GetLastError()); diff --git a/src/libuv/src/win/tcp.c b/src/libuv/src/win/tcp.c index 59a36de0..a91c5784 100644 --- a/src/libuv/src/win/tcp.c +++ b/src/libuv/src/win/tcp.c @@ -577,6 +577,7 @@ int uv_tcp_listen(uv_tcp_t* handle, int backlog, uv_connection_cb cb) { req->accept_socket = INVALID_SOCKET; req->data = handle; req->wait_handle = INVALID_HANDLE_VALUE; + req->event_handle = NULL; } } @@ -1040,9 +1041,11 @@ void uv_process_tcp_write_req(uv_loop_t* loop, uv_tcp_t* handle, if (handle->flags & UV_HANDLE_EMULATE_IOCP) { if (req->wait_handle != INVALID_HANDLE_VALUE) { UnregisterWait(req->wait_handle); + req->wait_handle = INVALID_HANDLE_VALUE; } if (req->event_handle) { CloseHandle(req->event_handle); + req->event_handle = NULL; } } diff --git a/src/libuv/src/win/util.c b/src/libuv/src/win/util.c index 4dd07363..4ff23b6d 100644 --- a/src/libuv/src/win/util.c +++ b/src/libuv/src/win/util.c @@ -427,6 +427,7 @@ uv_err_t uv_get_process_title(char* buffer, size_t size) { * we must query it with getConsoleTitleW */ if (!process_title && uv__get_process_title() == -1) { + LeaveCriticalSection(&process_title_lock); return uv__new_sys_error(GetLastError()); } diff --git a/src/libuv/test/test-emfile.c b/src/libuv/test/test-emfile.c new file mode 100644 index 00000000..25692d85 --- /dev/null +++ b/src/libuv/test/test-emfile.c @@ -0,0 +1,108 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#if !defined(_WIN32) + +#include "uv.h" +#include "task.h" + +#include +#include +#include +#include + +static void connection_cb(uv_stream_t* server_handle, int status); +static void connect_cb(uv_connect_t* req, int status); + +static const int maxfd = 31; +static unsigned connect_cb_called; +static uv_tcp_t server_handle; +static uv_tcp_t client_handle; + + +TEST_IMPL(emfile) { + struct sockaddr_in addr; + struct rlimit limits; + uv_connect_t connect_req; + uv_loop_t* loop; + int first_fd; + + loop = uv_default_loop(); + addr = uv_ip4_addr("127.0.0.1", TEST_PORT); + ASSERT(0 == uv_tcp_init(loop, &server_handle)); + ASSERT(0 == uv_tcp_init(loop, &client_handle)); + ASSERT(0 == uv_tcp_bind(&server_handle, addr)); + ASSERT(0 == uv_listen((uv_stream_t*) &server_handle, 8, connection_cb)); + + /* Lower the file descriptor limit and use up all fds save one. */ + limits.rlim_cur = limits.rlim_max = maxfd + 1; + if (setrlimit(RLIMIT_NOFILE, &limits)) { + perror("setrlimit(RLIMIT_NOFILE)"); + ASSERT(0); + } + + /* Remember the first one so we can clean up afterwards. */ + do + first_fd = dup(0); + while (first_fd == -1 && errno == EINTR); + ASSERT(first_fd > 0); + + while (dup(0) != -1 || errno == EINTR); + ASSERT(errno == EMFILE); + close(maxfd); + + /* Now connect and use up the last available file descriptor. The EMFILE + * handling logic in src/unix/stream.c should ensure that connect_cb() runs + * whereas connection_cb() should *not* run. + */ + ASSERT(0 == uv_tcp_connect(&connect_req, &client_handle, addr, connect_cb)); + ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT)); + ASSERT(1 == connect_cb_called); + + /* Close the dups again. Ignore errors in the unlikely event that the + * file descriptors were not contiguous. + */ + while (first_fd < maxfd) { + close(first_fd); + first_fd += 1; + } + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + +static void connection_cb(uv_stream_t* server_handle, int status) { + ASSERT(0 && "connection_cb should not be called."); +} + + +static void connect_cb(uv_connect_t* req, int status) { + /* |status| should equal 0 because the connection should have been accepted, + * it's just that the server immediately closes it again. + */ + ASSERT(0 == status); + connect_cb_called += 1; + uv_close((uv_handle_t*) &server_handle, NULL); + uv_close((uv_handle_t*) &client_handle, NULL); +} + +#endif /* !defined(_WIN32) */ diff --git a/src/libuv/test/test-ipc.c b/src/libuv/test/test-ipc.c index 40a48b73..ef27cc77 100644 --- a/src/libuv/test/test-ipc.c +++ b/src/libuv/test/test-ipc.c @@ -439,7 +439,7 @@ static void on_tcp_child_process_read(uv_stream_t* tcp, ssize_t nread, uv_buf_t return; } - printf("error recving on tcp connection: %s\n", + printf("error recving on tcp connection: %s\n", uv_strerror(uv_last_error(tcp->loop))); abort(); } diff --git a/src/libuv/test/test-list.h b/src/libuv/test/test-list.h index 7a9b1a29..47444258 100644 --- a/src/libuv/test/test-list.h +++ b/src/libuv/test/test-list.h @@ -64,6 +64,7 @@ TEST_DECLARE (tcp_connect_error_fault) TEST_DECLARE (tcp_connect_timeout) TEST_DECLARE (tcp_close_while_connecting) TEST_DECLARE (tcp_close) +TEST_DECLARE (tcp_close_accept) TEST_DECLARE (tcp_flags) TEST_DECLARE (tcp_write_to_half_open_connection) TEST_DECLARE (tcp_unexpected_read) @@ -87,11 +88,13 @@ TEST_DECLARE (pipe_bind_error_inval) TEST_DECLARE (pipe_listen_without_bind) TEST_DECLARE (pipe_connect_bad_name) TEST_DECLARE (pipe_connect_to_file) +TEST_DECLARE (pipe_server_close) TEST_DECLARE (connection_fail) TEST_DECLARE (connection_fail_doesnt_auto_close) TEST_DECLARE (shutdown_close_tcp) TEST_DECLARE (shutdown_close_pipe) TEST_DECLARE (shutdown_eof) +TEST_DECLARE (shutdown_twice) TEST_DECLARE (callback_stack) TEST_DECLARE (error_message) TEST_DECLARE (timer) @@ -106,6 +109,7 @@ TEST_DECLARE (idle_starvation) TEST_DECLARE (loop_handles) TEST_DECLARE (get_loadavg) TEST_DECLARE (walk_handles) +TEST_DECLARE (watcher_cross_stop) TEST_DECLARE (ref) TEST_DECLARE (idle_ref) TEST_DECLARE (async_ref) @@ -157,7 +161,9 @@ TEST_DECLARE (spawn_preserve_env) TEST_DECLARE (spawn_setuid_fails) TEST_DECLARE (spawn_setgid_fails) TEST_DECLARE (spawn_stdout_to_file) +TEST_DECLARE (spawn_stdout_and_stderr_to_file) TEST_DECLARE (spawn_auto_unref) +TEST_DECLARE (spawn_closed_process_io) TEST_DECLARE (fs_poll) TEST_DECLARE (kill) TEST_DECLARE (fs_file_noent) @@ -209,6 +215,7 @@ TEST_DECLARE (poll_duplex) TEST_DECLARE (poll_unidirectional) TEST_DECLARE (poll_close) #ifdef _WIN32 +TEST_DECLARE (poll_closesocket) TEST_DECLARE (spawn_detect_pipe_name_collisions_on_windows) TEST_DECLARE (argument_escaping) TEST_DECLARE (environment_creation) @@ -216,13 +223,16 @@ TEST_DECLARE (listen_with_simultaneous_accepts) TEST_DECLARE (listen_no_simultaneous_accepts) TEST_DECLARE (fs_stat_root) #else +TEST_DECLARE (emfile) TEST_DECLARE (spawn_setuid_setgid) TEST_DECLARE (we_get_signal) TEST_DECLARE (we_get_signals) TEST_DECLARE (signal_multiple_loops) +TEST_DECLARE (closed_fd_events) #endif #ifdef __APPLE__ TEST_DECLARE (osx_select) +TEST_DECLARE (osx_select_many_fds) #endif HELPER_DECLARE (tcp4_echo_server) HELPER_DECLARE (tcp6_echo_server) @@ -254,6 +264,7 @@ TASK_LIST_START TEST_ENTRY (pipe_connect_bad_name) TEST_ENTRY (pipe_connect_to_file) + TEST_ENTRY (pipe_server_close) TEST_ENTRY (tty) TEST_ENTRY (stdio_over_pipes) TEST_ENTRY (ipc_listen_before_write) @@ -297,6 +308,7 @@ TASK_LIST_START TEST_ENTRY (tcp_connect_timeout) TEST_ENTRY (tcp_close_while_connecting) TEST_ENTRY (tcp_close) + TEST_ENTRY (tcp_close_accept) TEST_ENTRY (tcp_flags) TEST_ENTRY (tcp_write_to_half_open_connection) TEST_ENTRY (tcp_unexpected_read) @@ -337,6 +349,9 @@ TASK_LIST_START TEST_ENTRY (shutdown_eof) TEST_HELPER (shutdown_eof, tcp4_echo_server) + TEST_ENTRY (shutdown_twice) + TEST_HELPER (shutdown_twice, tcp4_echo_server) + TEST_ENTRY (callback_stack) TEST_HELPER (callback_stack, tcp4_echo_server) @@ -385,6 +400,8 @@ TASK_LIST_START TEST_ENTRY (loop_handles) TEST_ENTRY (walk_handles) + TEST_ENTRY (watcher_cross_stop) + TEST_ENTRY (active) TEST_ENTRY (embed) @@ -427,11 +444,14 @@ TASK_LIST_START TEST_ENTRY (spawn_setuid_fails) TEST_ENTRY (spawn_setgid_fails) TEST_ENTRY (spawn_stdout_to_file) + TEST_ENTRY (spawn_stdout_and_stderr_to_file) TEST_ENTRY (spawn_auto_unref) + TEST_ENTRY (spawn_closed_process_io) TEST_ENTRY (fs_poll) TEST_ENTRY (kill) #ifdef _WIN32 + TEST_ENTRY (poll_closesocket) TEST_ENTRY (spawn_detect_pipe_name_collisions_on_windows) TEST_ENTRY (argument_escaping) TEST_ENTRY (environment_creation) @@ -439,14 +459,17 @@ TASK_LIST_START TEST_ENTRY (listen_no_simultaneous_accepts) TEST_ENTRY (fs_stat_root) #else + TEST_ENTRY (emfile) TEST_ENTRY (spawn_setuid_setgid) TEST_ENTRY (we_get_signal) TEST_ENTRY (we_get_signals) TEST_ENTRY (signal_multiple_loops) + TEST_ENTRY (closed_fd_events) #endif #ifdef __APPLE__ TEST_ENTRY (osx_select) + TEST_ENTRY (osx_select_many_fds) #endif TEST_ENTRY (fs_file_noent) diff --git a/src/libuv/test/test-osx-select.c b/src/libuv/test/test-osx-select.c index bf4c3952..249614a1 100644 --- a/src/libuv/test/test-osx-select.c +++ b/src/libuv/test/test-osx-select.c @@ -79,4 +79,51 @@ TEST_IMPL(osx_select) { return 0; } + +TEST_IMPL(osx_select_many_fds) { + int r; + int fd; + size_t i; + size_t len; + const char* str; + struct sockaddr_in addr; + uv_tty_t tty; + uv_tcp_t tcps[1500]; + + addr = uv_ip4_addr("127.0.0.1", 0); + + for (i = 0; i < ARRAY_SIZE(tcps); i++) { + r = uv_tcp_init(uv_default_loop(), &tcps[i]); + ASSERT(r == 0); + r = uv_tcp_bind(&tcps[i], addr); + ASSERT(r == 0); + uv_unref((uv_handle_t*) &tcps[i]); + } + + fd = open("/dev/tty", O_RDONLY); + ASSERT(fd >= 0); + + r = uv_tty_init(uv_default_loop(), &tty, fd, 1); + ASSERT(r == 0); + + r = uv_read_start((uv_stream_t*) &tty, alloc_cb, read_cb); + ASSERT(r == 0); + + /* Emulate user-input */ + str = "got some input\n" + "with a couple of lines\n" + "feel pretty happy\n"; + for (i = 0, len = strlen(str); i < len; i++) { + r = ioctl(fd, TIOCSTI, str + i); + ASSERT(r == 0); + } + + uv_run(uv_default_loop(), UV_RUN_DEFAULT); + + ASSERT(read_count == 3); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + #endif /* __APPLE__ */ diff --git a/src/libuv/test/test-pipe-server-close.c b/src/libuv/test/test-pipe-server-close.c new file mode 100644 index 00000000..1dcdfffa --- /dev/null +++ b/src/libuv/test/test-pipe-server-close.c @@ -0,0 +1,91 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "uv.h" +#include "task.h" + +#include +#include + + +static uv_pipe_t pipe_client; +static uv_pipe_t pipe_server; +static uv_connect_t connect_req; + +static int pipe_close_cb_called = 0; +static int pipe_client_connect_cb_called = 0; + + +static void pipe_close_cb(uv_handle_t* handle) { + ASSERT(handle == (uv_handle_t*) &pipe_client || + handle == (uv_handle_t*) &pipe_server); + pipe_close_cb_called++; +} + + +static void pipe_client_connect_cb(uv_connect_t* req, int status) { + ASSERT(req == &connect_req); + ASSERT(status == 0); + + pipe_client_connect_cb_called++; + + uv_close((uv_handle_t*) &pipe_client, pipe_close_cb); + uv_close((uv_handle_t*) &pipe_server, pipe_close_cb); +} + + +static void pipe_server_connection_cb(uv_stream_t* handle, int status) { + /* This function *may* be called, depending on whether accept or the + * connection callback is called first. + */ + ASSERT(status == 0); +} + + +TEST_IMPL(pipe_server_close) { + uv_loop_t* loop; + int r; + + loop = uv_default_loop(); + ASSERT(loop != NULL); + + r = uv_pipe_init(loop, &pipe_server, 0); + ASSERT(r == 0); + + r = uv_pipe_bind(&pipe_server, TEST_PIPENAME); + ASSERT(r == 0); + + r = uv_listen((uv_stream_t*) &pipe_server, 0, pipe_server_connection_cb); + ASSERT(r == 0); + + r = uv_pipe_init(loop, &pipe_client, 0); + ASSERT(r == 0); + + uv_pipe_connect(&connect_req, &pipe_client, TEST_PIPENAME, pipe_client_connect_cb); + + r = uv_run(loop, UV_RUN_DEFAULT); + ASSERT(r == 0); + ASSERT(pipe_client_connect_cb_called == 1); + ASSERT(pipe_close_cb_called == 2); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/src/libuv/test/test-poll-close.c b/src/libuv/test/test-poll-close.c index 70b775f2..2eccddf5 100644 --- a/src/libuv/test/test-poll-close.c +++ b/src/libuv/test/test-poll-close.c @@ -59,7 +59,7 @@ TEST_IMPL(poll_close) { uv_poll_init_socket(uv_default_loop(), &poll_handles[i], sockets[i]); uv_poll_start(&poll_handles[i], UV_READABLE | UV_WRITABLE, NULL); } - + for (i = 0; i < NUM_SOCKETS; i++) { uv_close((uv_handle_t*) &poll_handles[i], close_cb); } diff --git a/src/libuv/test/test-poll-closesocket.c b/src/libuv/test/test-poll-closesocket.c new file mode 100644 index 00000000..4db74a01 --- /dev/null +++ b/src/libuv/test/test-poll-closesocket.c @@ -0,0 +1,89 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifdef _WIN32 + +#include + +#include "uv.h" +#include "task.h" + +uv_os_sock_t sock; +uv_poll_t handle; + +static int close_cb_called = 0; + + +static void close_cb(uv_handle_t* h) { + close_cb_called++; +} + + +static void poll_cb(uv_poll_t* h, int status, int events) { + int r; + + ASSERT(status == 0); + ASSERT(h == &handle); + + r = uv_poll_start(&handle, UV_READABLE, poll_cb); + ASSERT(r == 0); + + closesocket(sock); + uv_close((uv_handle_t*) &handle, close_cb); + +} + + +TEST_IMPL(poll_closesocket) { + struct WSAData wsa_data; + int r; + unsigned long on; + struct sockaddr_in addr; + + r = WSAStartup(MAKEWORD(2, 2), &wsa_data); + ASSERT(r == 0); + + sock = socket(AF_INET, SOCK_STREAM, 0); + ASSERT(sock != INVALID_SOCKET); + on = 1; + r = ioctlsocket(sock, FIONBIO, &on); + ASSERT(r == 0); + + r = uv_ip4_addr("127.0.0.1", TEST_PORT, &addr); + ASSERT(r == 0); + + r = connect(sock, (const struct sockaddr*) &addr, sizeof addr); + ASSERT(r != 0); + ASSERT(WSAGetLastError() == WSAEWOULDBLOCK); + + r = uv_poll_init_socket(uv_default_loop(), &handle, sock); + ASSERT(r == 0); + r = uv_poll_start(&handle, UV_WRITABLE, poll_cb); + ASSERT(r == 0); + + uv_run(uv_default_loop(), UV_RUN_DEFAULT); + + ASSERT(close_cb_called == 1); + + MAKE_VALGRIND_HAPPY(); + return 0; +} +#endif diff --git a/src/libuv/test/test-shutdown-twice.c b/src/libuv/test/test-shutdown-twice.c new file mode 100644 index 00000000..7ce3e04a --- /dev/null +++ b/src/libuv/test/test-shutdown-twice.c @@ -0,0 +1,83 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* + * This is a regression test for issue #1113 (calling uv_shutdown twice will + * leave a ghost request in the system) + */ + +#include "uv.h" +#include "task.h" + +static uv_shutdown_t req1; +static uv_shutdown_t req2; + +static int shutdown_cb_called = 0; + +static void close_cb(uv_handle_t* handle) { + +} + +static void shutdown_cb(uv_shutdown_t* req, int status) { + ASSERT(req == &req1); + ASSERT(status == 0); + shutdown_cb_called++; + uv_close((uv_handle_t*) req->handle, close_cb); +} + +static void connect_cb(uv_connect_t* req, int status) { + int r; + + ASSERT(status == 0); + + r = uv_shutdown(&req1, req->handle, shutdown_cb); + ASSERT(r == 0); + r = uv_shutdown(&req2, req->handle, shutdown_cb); + ASSERT(r != 0); + +} + +TEST_IMPL(shutdown_twice) { + struct sockaddr_in addr = uv_ip4_addr("127.0.0.1", TEST_PORT); + uv_loop_t* loop; + int r; + uv_tcp_t h; + + uv_connect_t connect_req; + + loop = uv_default_loop(); + + r = uv_tcp_init(loop, &h); + + r = uv_tcp_connect(&connect_req, + &h, + addr, + connect_cb); + ASSERT(r == 0); + + r = uv_run(uv_default_loop(), UV_RUN_DEFAULT); + ASSERT(r == 0); + + ASSERT(shutdown_cb_called == 1); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/src/libuv/test/test-spawn.c b/src/libuv/test/test-spawn.c index 56eca9c5..43da6664 100644 --- a/src/libuv/test/test-spawn.c +++ b/src/libuv/test/test-spawn.c @@ -40,6 +40,7 @@ static char exepath[1024]; static size_t exepath_size = 1024; static char* args[3]; static int no_term_signal; +static int timer_counter; #define OUTPUT_SIZE 1024 static char output[OUTPUT_SIZE]; @@ -118,6 +119,12 @@ static void on_read(uv_stream_t* tcp, ssize_t nread, uv_buf_t buf) { } +static void on_read_once(uv_stream_t* tcp, ssize_t nread, const uv_buf_t buf) { + uv_read_stop(tcp); + on_read(tcp, nread, buf); +} + + static void write_cb(uv_write_t* req, int status) { ASSERT(status == 0); uv_close((uv_handle_t*)req->handle, close_cb); @@ -145,6 +152,11 @@ static void timer_cb(uv_timer_t* handle, int status) { } +static void timer_counter_cb(uv_timer_t* handle, int status) { + ++timer_counter; +} + + TEST_IMPL(spawn_fails) { init_process_options("", exit_cb_failure_expected); options.file = options.args[0] = "program-that-had-better-not-exist"; @@ -263,6 +275,61 @@ TEST_IMPL(spawn_stdout_to_file) { } +TEST_IMPL(spawn_stdout_and_stderr_to_file) { + int r; + uv_file file; + uv_fs_t fs_req; + uv_stdio_container_t stdio[3]; + + /* Setup. */ + unlink("stdout_file"); + + init_process_options("spawn_helper6", exit_cb); + + r = uv_fs_open(uv_default_loop(), &fs_req, "stdout_file", O_CREAT | O_RDWR, + S_IREAD | S_IWRITE, NULL); + ASSERT(r != -1); + uv_fs_req_cleanup(&fs_req); + + file = r; + + options.stdio = stdio; + options.stdio[0].flags = UV_IGNORE; + options.stdio[1].flags = UV_INHERIT_FD; + options.stdio[1].data.fd = file; + options.stdio[2].flags = UV_INHERIT_FD; + options.stdio[2].data.fd = file; + options.stdio_count = 3; + + r = uv_spawn(uv_default_loop(), &process, options); + ASSERT(r == 0); + + r = uv_run(uv_default_loop(), UV_RUN_DEFAULT); + ASSERT(r == 0); + + ASSERT(exit_cb_called == 1); + ASSERT(close_cb_called == 1); + + r = uv_fs_read(uv_default_loop(), &fs_req, file, output, sizeof(output), + 0, NULL); + ASSERT(r == 27); + uv_fs_req_cleanup(&fs_req); + + r = uv_fs_close(uv_default_loop(), &fs_req, file, NULL); + ASSERT(r == 0); + uv_fs_req_cleanup(&fs_req); + + printf("output is: %s", output); + ASSERT(strcmp("hello world\nhello errworld\n", output) == 0); + + /* Cleanup. */ + unlink("stdout_file"); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + TEST_IMPL(spawn_stdin) { int r; uv_pipe_t out; @@ -562,6 +629,86 @@ TEST_IMPL(spawn_and_ping) { } +TEST_IMPL(spawn_same_stdout_stderr) { + uv_write_t write_req; + uv_pipe_t in, out; + uv_buf_t buf; + uv_stdio_container_t stdio[3]; + int r; + + init_process_options("spawn_helper3", exit_cb); + buf = uv_buf_init("TEST", 4); + + uv_pipe_init(uv_default_loop(), &out, 0); + uv_pipe_init(uv_default_loop(), &in, 0); + options.stdio = stdio; + options.stdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE; + options.stdio[0].data.stream = (uv_stream_t*)∈ + options.stdio[1].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE; + options.stdio[1].data.stream = (uv_stream_t*)&out; + options.stdio_count = 2; + + r = uv_spawn(uv_default_loop(), &process, options); + ASSERT(r == 0); + + /* Sending signum == 0 should check if the + * child process is still alive, not kill it. + */ + r = uv_process_kill(&process, 0); + ASSERT(r == 0); + + r = uv_write(&write_req, (uv_stream_t*)&in, &buf, 1, write_cb); + ASSERT(r == 0); + + r = uv_read_start((uv_stream_t*)&out, on_alloc, on_read); + ASSERT(r == 0); + + ASSERT(exit_cb_called == 0); + + r = uv_run(uv_default_loop(), UV_RUN_DEFAULT); + ASSERT(r == 0); + + ASSERT(exit_cb_called == 1); + ASSERT(strcmp(output, "TEST") == 0); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + +TEST_IMPL(spawn_closed_process_io) { + uv_pipe_t in; + uv_write_t write_req; + uv_buf_t buf; + uv_stdio_container_t stdio[2]; + static char buffer[] = "hello-from-spawn_stdin\n"; + + init_process_options("spawn_helper3", exit_cb); + + uv_pipe_init(uv_default_loop(), &in, 0); + options.stdio = stdio; + options.stdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE; + options.stdio[0].data.stream = (uv_stream_t*) ∈ + options.stdio_count = 1; + + close(0); /* Close process stdin. */ + + ASSERT(0 == uv_spawn(uv_default_loop(), &process, options)); + + buf.base = buffer; + buf.len = sizeof(buffer); + ASSERT(0 == uv_write(&write_req, (uv_stream_t*) &in, &buf, 1, write_cb)); + + ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_DEFAULT)); + + ASSERT(exit_cb_called == 1); + ASSERT(close_cb_called == 2); /* process, child stdin */ + + MAKE_VALGRIND_HAPPY(); + return 0; +} + + TEST_IMPL(kill) { int r; uv_err_t err; @@ -936,3 +1083,65 @@ TEST_IMPL(spawn_auto_unref) { MAKE_VALGRIND_HAPPY(); return 0; } + + +#ifndef _WIN32 +TEST_IMPL(closed_fd_events) { + uv_stdio_container_t stdio[3]; + uv_pipe_t pipe_handle; + int fd[2]; + + /* create a pipe and share it with a child process */ + ASSERT(0 == pipe(fd)); + ASSERT(0 == fcntl(fd[0], F_SETFL, O_NONBLOCK)); + + /* spawn_helper4 blocks indefinitely. */ + init_process_options("spawn_helper4", exit_cb); + options.stdio_count = 3; + options.stdio = stdio; + options.stdio[0].data.fd = fd[0]; + options.stdio[0].flags = UV_INHERIT_FD; + options.stdio[1].flags = UV_IGNORE; + options.stdio[2].flags = UV_IGNORE; + + ASSERT(0 == uv_spawn(uv_default_loop(), &process, options)); + uv_unref((uv_handle_t*) &process); + + /* read from the pipe with uv */ + ASSERT(0 == uv_pipe_init(uv_default_loop(), &pipe_handle, 0)); + ASSERT(0 == uv_pipe_open(&pipe_handle, fd[0])); + fd[0] = -1; + + ASSERT(0 == uv_read_start((uv_stream_t*) &pipe_handle, on_alloc, on_read_once)); + + ASSERT(1 == write(fd[1], "", 1)); + + ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_ONCE)); + + /* should have received just one byte */ + ASSERT(output_used == 1); + + /* close the pipe and see if we still get events */ + uv_close((uv_handle_t*) &pipe_handle, close_cb); + + ASSERT(1 == write(fd[1], "", 1)); + + ASSERT(0 == uv_timer_init(uv_default_loop(), &timer)); + ASSERT(0 == uv_timer_start(&timer, timer_counter_cb, 10, 0)); + + /* see if any spurious events interrupt the timer */ + if (1 == uv_run(uv_default_loop(), UV_RUN_ONCE)) { + if (1 == uv_run(uv_default_loop(), UV_RUN_ONCE)) + ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_ONCE)); + } + + ASSERT(timer_counter == 1); + + /* cleanup */ + ASSERT(0 == uv_process_kill(&process, /* SIGTERM */ 15)); + ASSERT(0 == close(fd[1])); + + MAKE_VALGRIND_HAPPY(); + return 0; +} +#endif /* !_WIN32 */ diff --git a/src/libuv/test/test-tcp-close-accept.c b/src/libuv/test/test-tcp-close-accept.c new file mode 100644 index 00000000..f5336a58 --- /dev/null +++ b/src/libuv/test/test-tcp-close-accept.c @@ -0,0 +1,177 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "uv.h" +#include "task.h" + +#include +#include + +static struct sockaddr_in addr; +static uv_tcp_t tcp_server; +static uv_tcp_t tcp_outgoing[2]; +static uv_tcp_t tcp_incoming[ARRAY_SIZE(tcp_outgoing)]; +static uv_connect_t connect_reqs[ARRAY_SIZE(tcp_outgoing)]; +static uv_tcp_t tcp_check; +static uv_connect_t tcp_check_req; +static uv_write_t write_reqs[ARRAY_SIZE(tcp_outgoing)]; +static unsigned int got_connections; +static unsigned int close_cb_called; +static unsigned int write_cb_called; +static unsigned int read_cb_called; + +static void close_cb(uv_handle_t* handle) { + close_cb_called++; +} + +static void write_cb(uv_write_t* req, int status) { + ASSERT(status == 0); + write_cb_called++; +} + +static void connect_cb(uv_connect_t* req, int status) { + unsigned int i; + uv_buf_t buf; + uv_stream_t* outgoing; + + if (req == &tcp_check_req) { + ASSERT(status != 0); + + /* Close check and incoming[0], time to finish test */ + uv_close((uv_handle_t*) &tcp_incoming[0], close_cb); + uv_close((uv_handle_t*) &tcp_check, close_cb); + return; + } + + ASSERT(status == 0); + ASSERT(connect_reqs <= req); + ASSERT(req <= connect_reqs + ARRAY_SIZE(connect_reqs)); + i = req - connect_reqs; + + buf = uv_buf_init("x", 1); + outgoing = (uv_stream_t*) &tcp_outgoing[i]; + ASSERT(0 == uv_write(&write_reqs[i], outgoing, &buf, 1, write_cb)); +} + +static uv_buf_t alloc_cb(uv_handle_t* handle, size_t suggested_size) { + static char buf[1]; + + return uv_buf_init(buf, sizeof(buf)); +} + +static void read_cb(uv_stream_t* stream, ssize_t nread, uv_buf_t b) { + uv_loop_t* loop; + unsigned int i; + + /* Only first stream should receive read events */ + ASSERT(stream == (uv_stream_t*) &tcp_incoming[0]); + ASSERT(0 == uv_read_stop(stream)); + ASSERT(1 == nread); + + loop = stream->loop; + read_cb_called++; + + /* Close all active incomings, except current one */ + for (i = 1; i < got_connections; i++) + uv_close((uv_handle_t*) &tcp_incoming[i], close_cb); + + /* Create new fd that should be one of the closed incomings */ + ASSERT(0 == uv_tcp_init(loop, &tcp_check)); + ASSERT(0 == uv_tcp_connect(&tcp_check_req, &tcp_check, addr, connect_cb)); + ASSERT(0 == uv_read_start((uv_stream_t*) &tcp_check, alloc_cb, read_cb)); + + /* Close server, so no one will connect to it */ + uv_close((uv_handle_t*) &tcp_server, close_cb); +} + +static void connection_cb(uv_stream_t* server, int status) { + unsigned int i; + uv_tcp_t* incoming; + + ASSERT(server == (uv_stream_t*) &tcp_server); + + /* Ignore tcp_check connection */ + if (got_connections == ARRAY_SIZE(tcp_incoming)) + return; + + /* Accept everyone */ + incoming = &tcp_incoming[got_connections++]; + ASSERT(0 == uv_tcp_init(server->loop, incoming)); + ASSERT(0 == uv_accept(server, (uv_stream_t*) incoming)); + + if (got_connections != ARRAY_SIZE(tcp_incoming)) + return; + + /* Once all clients are accepted - start reading */ + for (i = 0; i < ARRAY_SIZE(tcp_incoming); i++) { + incoming = &tcp_incoming[i]; + ASSERT(0 == uv_read_start((uv_stream_t*) incoming, alloc_cb, read_cb)); + } +} + +TEST_IMPL(tcp_close_accept) { + unsigned int i; + uv_loop_t* loop; + uv_tcp_t* client; + + /* + * A little explanation of what goes on below: + * + * We'll create server and connect to it using two clients, each writing one + * byte once connected. + * + * When all clients will be accepted by server - we'll start reading from them + * and, on first client's first byte, will close second client and server. + * After that, we'll immediately initiate new connection to server using + * tcp_check handle (thus, reusing fd from second client). + * + * In this situation uv__io_poll()'s event list should still contain read + * event for second client, and, if not cleaned up properly, `tcp_check` will + * receive stale event of second incoming and invoke `connect_cb` with zero + * status. + */ + + loop = uv_default_loop(); + addr = uv_ip4_addr("0.0.0.0", TEST_PORT); + + ASSERT(0 == uv_tcp_init(loop, &tcp_server)); + ASSERT(0 == uv_tcp_bind(&tcp_server, addr)); + ASSERT(0 == uv_listen((uv_stream_t*) &tcp_server, + ARRAY_SIZE(tcp_outgoing), + connection_cb)); + + for (i = 0; i < ARRAY_SIZE(tcp_outgoing); i++) { + client = tcp_outgoing + i; + + ASSERT(0 == uv_tcp_init(loop, client)); + ASSERT(0 == uv_tcp_connect(&connect_reqs[i], client, addr, connect_cb)); + } + + uv_run(loop, UV_RUN_DEFAULT); + + ASSERT(ARRAY_SIZE(tcp_outgoing) == got_connections); + ASSERT((ARRAY_SIZE(tcp_outgoing) + 2) == close_cb_called); + ASSERT(ARRAY_SIZE(tcp_outgoing) == write_cb_called); + ASSERT(1 == read_cb_called); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/src/libuv/test/test-watcher-cross-stop.c b/src/libuv/test/test-watcher-cross-stop.c new file mode 100644 index 00000000..5b53320b --- /dev/null +++ b/src/libuv/test/test-watcher-cross-stop.c @@ -0,0 +1,108 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "uv.h" +#include "task.h" + +#include +#include + +#if !defined(_WIN32) +#include +#include /* setrlimit() */ +#endif + +/* NOTE: Number should be big enough to trigger this problem */ +static uv_udp_t sockets[2500]; +static uv_udp_send_t reqs[ARRAY_SIZE(sockets)]; +static char buf[1]; +static unsigned int recv_cb_called; +static unsigned int send_cb_called; +static unsigned int close_cb_called; + +static uv_buf_t alloc_cb(uv_handle_t* handle, size_t suggested_size) { + return uv_buf_init(buf, sizeof(buf)); +} + + +static void recv_cb(uv_udp_t* handle, + ssize_t nread, + uv_buf_t buf, + struct sockaddr* addr, + unsigned flags) { + recv_cb_called++; +} + + +static void send_cb(uv_udp_send_t* req, int status) { + send_cb_called++; +} + + +static void close_cb(uv_handle_t* handle) { + close_cb_called++; +} + + +TEST_IMPL(watcher_cross_stop) { + uv_loop_t* loop = uv_default_loop(); + unsigned int i; + struct sockaddr_in addr; + uv_buf_t buf; + char big_string[1024]; + +#if !defined(_WIN32) + { + struct rlimit lim; + lim.rlim_cur = ARRAY_SIZE(sockets) + 32; + lim.rlim_max = ARRAY_SIZE(sockets) + 32; + if (setrlimit(RLIMIT_NOFILE, &lim)) + RETURN_SKIP("File descriptor limit too low."); + } +#endif + + addr = uv_ip4_addr("127.0.0.1", TEST_PORT); + memset(big_string, 'A', sizeof(big_string)); + buf = uv_buf_init(big_string, sizeof(big_string)); + + for (i = 0; i < ARRAY_SIZE(sockets); i++) { + ASSERT(0 == uv_udp_init(loop, &sockets[i])); + ASSERT(0 == uv_udp_bind(&sockets[i], addr, 0)); + ASSERT(0 == uv_udp_recv_start(&sockets[i], alloc_cb, recv_cb)); + ASSERT(0 == uv_udp_send(&reqs[i], &sockets[i], &buf, 1, addr, send_cb)); + } + + while (recv_cb_called == 0) + uv_run(loop, UV_RUN_ONCE); + + for (i = 0; i < ARRAY_SIZE(sockets); i++) + uv_close((uv_handle_t*) &sockets[i], close_cb); + + ASSERT(0 < recv_cb_called && recv_cb_called <= ARRAY_SIZE(sockets)); + ASSERT(ARRAY_SIZE(sockets) == send_cb_called); + + uv_run(loop, UV_RUN_DEFAULT); + + ASSERT(ARRAY_SIZE(sockets) == close_cb_called); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/src/libuv/uv.gyp b/src/libuv/uv.gyp index f61ebb53..5af99bd5 100644 --- a/src/libuv/uv.gyp +++ b/src/libuv/uv.gyp @@ -194,6 +194,7 @@ }, 'defines': [ '_DARWIN_USE_64_BIT_INODE=1', + '_DARWIN_UNLIMITED_SELECT=1', ] }], [ 'OS!="mac"', { @@ -295,6 +296,7 @@ 'test/test-delayed-accept.c', 'test/test-error.c', 'test/test-embed.c', + 'test/test-emfile.c', 'test/test-fail-always.c', 'test/test-fs.c', 'test/test-fs-event.c', @@ -310,15 +312,18 @@ 'test/test-loop-handles.c', 'test/test-loop-stop.c', 'test/test-walk-handles.c', + 'test/test-watcher-cross-stop.c', 'test/test-multiple-listen.c', 'test/test-osx-select.c', 'test/test-pass-always.c', 'test/test-ping-pong.c', 'test/test-pipe-bind-error.c', 'test/test-pipe-connect-error.c', + 'test/test-pipe-server-close.c', 'test/test-platform-output.c', 'test/test-poll.c', 'test/test-poll-close.c', + 'test/test-poll-closesocket.c', 'test/test-process-title.c', 'test/test-ref.c', 'test/test-run-nowait.c', @@ -326,6 +331,7 @@ 'test/test-semaphore.c', 'test/test-shutdown-close.c', 'test/test-shutdown-eof.c', + 'test/test-shutdown-twice.c', 'test/test-signal.c', 'test/test-signal-multiple-loops.c', 'test/test-spawn.c', @@ -334,6 +340,7 @@ 'test/test-tcp-bind-error.c', 'test/test-tcp-bind6-error.c', 'test/test-tcp-close.c', + 'test/test-tcp-close-accept.c', 'test/test-tcp-close-while-connecting.c', 'test/test-tcp-connect-error-after-write.c', 'test/test-tcp-shutdown-after-write.c', diff --git a/src/libuv/vcbuild.bat b/src/libuv/vcbuild.bat index 1b2f865a..42b0b947 100644 --- a/src/libuv/vcbuild.bat +++ b/src/libuv/vcbuild.bat @@ -33,7 +33,7 @@ if /i "%1"=="noprojgen" set noprojgen=1&goto arg-ok if /i "%1"=="nobuild" set nobuild=1&goto arg-ok if /i "%1"=="x86" set target_arch=ia32&set platform=WIN32&set vs_toolset=x86&goto arg-ok if /i "%1"=="ia32" set target_arch=ia32&set platform=WIN32&set vs_toolset=x86&goto arg-ok -if /i "%1"=="x64" set target_arch=x64&set platform=amd64&set vs_toolset=x64&goto arg-ok +if /i "%1"=="x64" set target_arch=x64&set platform=x64&set vs_toolset=x64&goto arg-ok if /i "%1"=="shared" set library=shared_library&goto arg-ok if /i "%1"=="static" set library=static_library&goto arg-ok :arg-ok @@ -41,6 +41,17 @@ shift goto next-arg :args-done +if defined WindowsSDKDir goto select-target +if defined VCINSTALLDIR goto select-target + +@rem Look for Visual Studio 2013 +if not defined VS120COMNTOOLS goto vc-set-2012 +if not exist "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2012 +call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" %vs_toolset% +set GYP_MSVS_VERSION=2013 +goto select-target + +:vc-set-2012 @rem Look for Visual Studio 2012 if not defined VS110COMNTOOLS goto vc-set-2010 if not exist "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2010 @@ -91,7 +102,7 @@ exit /b 1 :have_gyp if not defined PYTHON set PYTHON="python" -%PYTHON% gyp_uv -Dtarget_arch=%target_arch% -Dlibrary=%library% +%PYTHON% gyp_uv.py -Dtarget_arch=%target_arch% -Dlibrary=%library% if errorlevel 1 goto create-msvs-files-failed if not exist uv.sln goto create-msvs-files-failed echo Project files generated. @@ -101,10 +112,8 @@ echo Project files generated. if defined nobuild goto run @rem Check if VS build env is available -if not defined VCINSTALLDIR goto msbuild-not-found -goto msbuild-found - -:msbuild-not-found +if defined VCINSTALLDIR goto msbuild-found +if defined WindowsSDKDir goto msbuild-found echo Build skipped. To build, this file needs to run from VS cmd prompt. goto run