Showing with 1,681 additions and 832 deletions.
  1. +16 −0 deps/uv/AUTHORS
  2. +105 −1 deps/uv/ChangeLog
  3. +1 −0 deps/uv/Makefile.am
  4. +15 −4 deps/uv/README.md
  5. +1 −1 deps/uv/configure.ac
  6. +2 −2 deps/uv/docs/src/conf.py
  7. +2 −2 deps/uv/docs/src/design.rst
  8. +14 −2 deps/uv/docs/src/dns.rst
  9. +22 −22 deps/uv/docs/src/fs.rst
  10. +3 −1 deps/uv/docs/src/loop.rst
  11. +16 −4 deps/uv/docs/src/misc.rst
  12. +4 −0 deps/uv/docs/src/pipe.rst
  13. +2 −2 deps/uv/docs/src/poll.rst
  14. +46 −0 deps/uv/docs/src/sphinx-plugins/manpage.py
  15. +1 −1 deps/uv/docs/src/stream.rst
  16. +4 −0 deps/uv/docs/src/tcp.rst
  17. +4 −0 deps/uv/docs/src/threadpool.rst
  18. +19 −15 deps/uv/docs/src/tty.rst
  19. +4 −0 deps/uv/docs/src/udp.rst
  20. +4 −4 deps/uv/include/uv-version.h
  21. +18 −28 deps/uv/include/uv-win.h
  22. +3 −2 deps/uv/include/uv.h
  23. +20 −13 deps/uv/src/unix/aix.c
  24. +1 −0 deps/uv/src/unix/android-ifaddrs.c
  25. +56 −37 deps/uv/src/unix/fs.c
  26. +7 −2 deps/uv/src/unix/linux-core.c
  27. +34 −9 deps/uv/src/unix/linux-syscalls.c
  28. +35 −8 deps/uv/src/unix/process.c
  29. +6 −1 deps/uv/src/unix/stream.c
  30. +14 −1 deps/uv/src/unix/tty.c
  31. +24 −8 deps/uv/src/uv-common.c
  32. +0 −1 deps/uv/src/win/core.c
  33. +0 −1 deps/uv/src/win/error.c
  34. +7 −6 deps/uv/src/win/fs-event.c
  35. +126 −101 deps/uv/src/win/fs.c
  36. +0 −1 deps/uv/src/win/getaddrinfo.c
  37. +0 −1 deps/uv/src/win/getnameinfo.c
  38. +155 −151 deps/uv/src/win/pipe.c
  39. +4 −4 deps/uv/src/win/poll.c
  40. +5 −5 deps/uv/src/win/process.c
  41. +4 −4 deps/uv/src/win/req-inl.h
  42. +2 −2 deps/uv/src/win/stream-inl.h
  43. +1 −1 deps/uv/src/win/stream.c
  44. +102 −97 deps/uv/src/win/tcp.c
  45. +129 −129 deps/uv/src/win/tty.c
  46. +14 −14 deps/uv/src/win/udp.c
  47. +2 −3 deps/uv/src/win/util.c
  48. +3 −2 deps/uv/test/benchmark-getaddrinfo.c
  49. +7 −5 deps/uv/test/benchmark-loop-count.c
  50. +5 −4 deps/uv/test/benchmark-million-timers.c
  51. +2 −1 deps/uv/test/benchmark-ping-pongs.c
  52. +6 −5 deps/uv/test/benchmark-pound.c
  53. +18 −12 deps/uv/test/benchmark-pump.c
  54. +18 −17 deps/uv/test/benchmark-sizes.c
  55. +3 −2 deps/uv/test/benchmark-spawn.c
  56. +2 −1 deps/uv/test/run-benchmarks.c
  57. +2 −1 deps/uv/test/run-tests.c
  58. +33 −23 deps/uv/test/runner.c
  59. +10 −16 deps/uv/test/task.h
  60. +73 −1 deps/uv/test/test-fs.c
  61. +2 −1 deps/uv/test/test-handle-fileno.c
  62. +6 −3 deps/uv/test/test-idle.c
  63. +8 −6 deps/uv/test/test-ip6-addr.c
  64. +18 −0 deps/uv/test/test-list.h
  65. +20 −13 deps/uv/test/test-loop-handles.c
  66. +5 −2 deps/uv/test/test-osx-select.c
  67. +1 −1 deps/uv/test/test-pipe-set-non-blocking.c
  68. +191 −1 deps/uv/test/test-spawn.c
  69. +115 −0 deps/uv/test/test-tcp-write-fail.c
  70. +12 −8 deps/uv/test/test-timer-again.c
  71. +55 −4 deps/uv/test/test-tty.c
  72. +9 −9 deps/uv/uv.gyp
  73. +2 −2 deps/uv/vcbuild.bat
  74. +1 −1 test/simple/test-tls-wrap-timeout.js
@@ -181,3 +181,19 @@ Johan Bergström <bugs@bergstroem.nu>
Alex Mo <almosnow@gmail.com>
Luis Martinez de Bartolome <lasote@gmail.com>
Michael Penick <michael.penick@datastax.com>
Michael <michael_dawson@ca.ibm.com>
Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
TomCrypto <thomas.beneteau@yahoo.fr>
Brett Vickers <brett@beevik.com>
Ole André Vadla Ravnås <oleavr@gmail.com>
Kazuho Oku <kazuhooku@gmail.com>
Ryan Phillips <ryan.phillips@rackspace.com>
Brian Green <briangreenery@gmail.com>
Devchandra Meetei Leishangthem <dlmeetei@gmail.com>
Corey Farrell <git@cfware.com>
Per Nilsson <pni@qlik.com>
Alan Rogers <alanjrogers@me.com>
Daryl Haresign <github@daryl.haresign.com>
Rui Abreu Ferreira <raf-ep@gmx.com>
João Reis <reis@janeasystems.com>
farblue68 <farblue68@gmail.com>
@@ -1,4 +1,108 @@
2015.02.27, Version 1.4.2 (Stable)
2015.05.07, Version 1.5.0 (Stable), 4e77f74c7b95b639b3397095db1bc5bcc016c203

Changes since version 1.4.2:

* doc: clarify that the thread pool primites are not thread safe (Andrius
Bentkus)

* aix: always deregister closing fds from epoll (Michael)

* unix: fix glibc-2.20+ macro incompatibility (Massimiliano Torromeo)

* doc: add Sphinx plugin for generating links to man pages (Saúl Ibarra
Corretgé)

* doc: link system and library calls to man pages (Saúl Ibarra Corretgé)

* doc: document uv_getnameinfo_t.{host|service} (Saúl Ibarra Corretgé)

* build: update the location of gyp (Stephen von Takach)

* win: name all anonymous structs and unions (TomCrypto)

* linux: work around epoll bug in kernels 3.10-3.19 (Ben Noordhuis)

* darwin: fix size calculation in select() fallback (Ole André Vadla Ravnås)

* solaris: fix setsockopt for multicast options (Julien Gilli)

* test: fix race condition in multithreaded test (Ben Noordhuis)

* doc: fix long lines in tty.rst (Ben Noordhuis)

* test: use UV_TTY_MODE_* values in tty test (Ben Noordhuis)

* unix: don't clobber errno in uv_tty_reset_mode() (Ben Noordhuis)

* unix: reject non-tty fds in uv_tty_init() (Ben Noordhuis)

* win: fix pipe blocking writes (Alexis Campailla)

* build: fix cross-compiling for iOS (Steven Kabbes)

* win: remove unnecessary malloc.h

* include: use `extern "c++"` for defining C++ code (Kazuho Oku)

* unix: reap child on execvp() failure (Ryan Phillips)

* windows: fix handle leak on EMFILE (Brian Green)

* test: fix tty_file, close handle if initialized (Saúl Ibarra Corretgé)

* doc: clarify what uv_*_open accepts (Saúl Ibarra Corretgé)

* doc: clarify that we don't maintain external doc resources (Saúl Ibarra
Corretgé)

* build: add documentation for ninja support (Devchandra Meetei Leishangthem)

* doc: document uv_buf_t members (Corey Farrell)

* linux: fix epoll_pwait() fallback on arm64 (Ben Noordhuis)

* android: fix compilation warning (Saúl Ibarra Corretgé)

* unix: don't close the fds we just setup (Sam Roberts)

* test: spawn child replacing std{out,err} to stderr (Saúl Ibarra Corretgé)

* unix: fix swapping fds order in uv_spawn (Saúl Ibarra Corretgé)

* unix: fix potential bug if dup2 fails in uv_spawn (Saúl Ibarra Corretgé)

* test: remove LOG and LOGF variadic macros (Saúl Ibarra Corretgé)

* win: fix uv_fs_access on directories (Saúl Ibarra Corretgé)

* win: fix of double free in uv_uptime (Per Nilsson)

* unix: open "/dev/null" instead of "/" for emfile_fd (Alan Rogers)

* docs: add some missing words (Daryl Haresign)

* unix: clean up uv_fs_open() O_CLOEXEC logic (Ben Noordhuis)

* build: set SONAME for shared library in uv.gyp (Rui Abreu Ferreira)

* windows: define snprintf replacement as inline instead of static (Rui Abreu
Ferreira)

* win: fix unlink of readonly files (João Reis)

* doc: fix uv_run(UV_RUN_DEFAULT) description (Ben Noordhuis)

* linux: intercept syscall when running under memory sanitizer (Keno Fischer)

* aix: fix uv_interface_addresses return value (farblue68)

* windows: defer reporting TCP write failure until next tick (Saúl Ibarra
Corretgé)

* test: add test for deferred TCP write failure (Saúl Ibarra Corretgé)


2015.02.27, Version 1.4.2 (Stable), 1a7391348a11d5450c0f69c828d5302e2cb842eb

Changes since version 1.4.1:

@@ -226,6 +226,7 @@ test_run_tests_SOURCES = test/blackhole-server.c \
test/test-tcp-write-to-half-open-connection.c \
test/test-tcp-write-after-connect.c \
test/test-tcp-writealot.c \
test/test-tcp-write-fail.c \
test/test-tcp-try-write.c \
test/test-tcp-write-queue-order.c \
test/test-thread-equal.c \
@@ -72,19 +72,23 @@ NOTE: Windows users need to use make.bat instead of plain 'make'.

Documentation can be browsed online [here](http://docs.libuv.org).

The [tests and benchmarks](https://github.com/libuv/libuv/tree/master/test)
also serve as API specification and usage examples.

### Other resources

* [An Introduction to libuv](http://nikhilm.github.com/uvbook/)
&mdash; An overview of libuv with tutorials.
* [LXJS 2012 talk](http://www.youtube.com/watch?v=nGn60vDSxQ4)
&mdash; High-level introductory talk about libuv.
* [Tests and benchmarks](https://github.com/libuv/libuv/tree/master/test)
&mdash; API specification and usage examples.
* [libuv-dox](https://github.com/thlorenz/libuv-dox)
&mdash; Documenting types and methods of libuv, mostly by reading uv.h.
* [learnuv](https://github.com/thlorenz/learnuv)
&mdash; Learn uv for fun and profit, a self guided workshop to libuv.

These resources are not handled by libuv maintainers and might be out of
date. Please verify it before opening new issues.

## Build Instructions

For GCC there are two build methods: via autotools or via [GYP][].
@@ -113,8 +117,6 @@ To have GYP generate build script for another system, checkout GYP into the
project tree manually:

$ git clone https://chromium.googlesource.com/external/gyp.git build/gyp
OR
$ svn co http://gyp.googlecode.com/svn/trunk build/gyp

### Unix

@@ -153,6 +155,15 @@ Run:
Note for UNIX users: compile your project with `-D_LARGEFILE_SOURCE` and
`-D_FILE_OFFSET_BITS=64`. GYP builds take care of that automatically.

### Using Ninja

To use ninja for build on ninja supported platforms, run:

$ ./gyp_uv.py -f ninja
$ ninja -C out/Debug #for debug build OR
$ ninja -C out/Release


### Running tests

Run:
@@ -13,7 +13,7 @@
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

AC_PREREQ(2.57)
AC_INIT([libuv], [1.4.2], [https://github.com/libuv/libuv/issues])
AC_INIT([libuv], [1.5.0], [https://github.com/libuv/libuv/issues])
AC_CONFIG_MACRO_DIR([m4])
m4_include([m4/libuv-extra-automake-flags.m4])
m4_include([m4/as_case.m4])
@@ -38,7 +38,7 @@ def get_libuv_version():
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
sys.path.insert(0, os.path.abspath('sphinx-plugins'))

# -- General configuration ------------------------------------------------

@@ -48,7 +48,7 @@ def get_libuv_version():
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = []
extensions = ['manpage']

# Add any paths that contain templates here, relative to this directory.
templates_path = ['templates']
@@ -40,7 +40,7 @@ The I/O loop
The I/O (or event) loop is the central part of libuv. It establishes the content for all I/O
operations, and it's meant to be tied to a single thread. One can run multiple event loops
as long as each runs in a different thread. The libuv event loop (or any other API involving
the loop or handles, for that matter) **is not thread-safe** except stated otherwise.
the loop or handles, for that matter) **is not thread-safe** except where stated otherwise.

The event loop follows the rather usual single threaded asynchronous I/O approach: all (network)
I/O is performed on non-blocking sockets which are polled using the best mechanism available
@@ -113,7 +113,7 @@ stages of a loop iteration:

.. note::
While the polling mechanism is different, libuv makes the execution model consistent
Unix systems and Windows.
across Unix systems and Windows.


File I/O
@@ -51,6 +51,18 @@ Public members
Loop that started this getnameinfo request and where completion will be
reported. Readonly.

.. c:member:: char[NI_MAXHOST] uv_getnameinfo_t.host
Char array containing the resulting host. It's null terminated.

.. versionchanged:: 1.3.0 the field is declared as public.

.. c:member:: char[NI_MAXSERV] uv_getnameinfo_t.service
Char array containing the resulting service. It's null terminated.

.. versionchanged:: 1.3.0 the field is declared as public.

.. seealso:: The :c:type:`uv_req_t` members also apply.


@@ -59,7 +71,7 @@ API

.. c:function:: int uv_getaddrinfo(uv_loop_t* loop, uv_getaddrinfo_t* req, uv_getaddrinfo_cb getaddrinfo_cb, const char* node, const char* service, const struct addrinfo* hints)
Asynchronous ``getaddrinfo(3)``.
Asynchronous :man:`getaddrinfo(3)`.
Either node or service may be NULL but not both.
@@ -84,7 +96,7 @@ API
.. c:function:: int uv_getnameinfo(uv_loop_t* loop, uv_getnameinfo_t* req, uv_getnameinfo_cb getnameinfo_cb, const struct sockaddr* addr, int flags)
Asynchronous ``getnameinfo(3)``.
Asynchronous :man:`getnameinfo(3)`.
Returns 0 on success or an error code < 0 on failure. If successful, the
callback will get called sometime in the future with the lookup result.