summaryrefslogtreecommitdiff
path: root/deps/uv/docs
diff options
context:
space:
mode:
authorSaúl Ibarra Corretgé <saghul@gmail.com>2014-10-21 00:45:30 +0200
committerTrevor Norris <trev.norris@gmail.com>2014-11-05 16:49:57 -0800
commitce112c27c636ba17129d6061f8db636a80faeb48 (patch)
tree50e2a8185185b31573fe57b2d33cbf7dfa7529bc /deps/uv/docs
parent28ae70ebad8debd8aa7b521a693aa3de89ad84d6 (diff)
downloadandroid-node-v8-ce112c27c636ba17129d6061f8db636a80faeb48.tar.gz
android-node-v8-ce112c27c636ba17129d6061f8db636a80faeb48.tar.bz2
android-node-v8-ce112c27c636ba17129d6061f8db636a80faeb48.zip
deps: update uv to v1.0.0-rc2
PR-URL: https://github.com/joyent/node/pull/8566 Reviewed-by: Fedor Indutny <fedor@indutny.com> Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Diffstat (limited to 'deps/uv/docs')
-rw-r--r--deps/uv/docs/src/fs.rst30
-rw-r--r--deps/uv/docs/src/fs_poll.rst4
-rw-r--r--deps/uv/docs/src/handle.rst9
-rw-r--r--deps/uv/docs/src/index.rst11
-rw-r--r--deps/uv/docs/src/loop.rst4
-rw-r--r--deps/uv/docs/src/migration_010_100.rst244
-rw-r--r--deps/uv/docs/src/process.rst10
-rw-r--r--deps/uv/docs/src/stream.rst28
-rw-r--r--deps/uv/docs/src/threading.rst1
9 files changed, 333 insertions, 8 deletions
diff --git a/deps/uv/docs/src/fs.rst b/deps/uv/docs/src/fs.rst
index d2db408134..cc8f5525b9 100644
--- a/deps/uv/docs/src/fs.rst
+++ b/deps/uv/docs/src/fs.rst
@@ -20,9 +20,20 @@ Data types
Filesystem request type.
+.. c:type:: uv_timespec_t
+
+ Portable equivalent of ``struct timespec``.
+
+ ::
+
+ typedef struct {
+ long tv_sec;
+ long tv_nsec;
+ } uv_timespec_t;
+
.. c:type:: uv_stat_t
- Portable equivalent of `struct stat`.
+ Portable equivalent of ``struct stat``.
::
@@ -65,6 +76,7 @@ Data types
UV_FS_FTRUNCATE,
UV_FS_UTIME,
UV_FS_FUTIME,
+ UV_FS_ACCESS,
UV_FS_CHMOD,
UV_FS_FCHMOD,
UV_FS_FSYNC,
@@ -74,7 +86,7 @@ Data types
UV_FS_MKDIR,
UV_FS_MKDTEMP,
UV_FS_RENAME,
- UV_FS_READDIR,
+ UV_FS_SCANDIR,
UV_FS_LINK,
UV_FS_SYMLINK,
UV_FS_READLINK,
@@ -85,7 +97,7 @@ Data types
.. c:type:: uv_dirent_t
Cross platform (reduced) equivalent of ``struct dirent``.
- Used in :c:func:`uv_fs_readdir_next`.
+ Used in :c:func:`uv_fs_scandir_next`.
::
@@ -183,11 +195,11 @@ API
Equivalent to ``rmdir(2)``.
-.. c:function:: int uv_fs_readdir(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, uv_fs_cb cb)
-.. c:function:: int uv_fs_readdir_next(uv_fs_t* req, uv_dirent_t* ent)
+.. c:function:: int uv_fs_scandir(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, uv_fs_cb cb)
+.. c:function:: int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent)
- Equivalent to ``readdir(2)``, with a slightly different API. Once the callback
- for the request is called, the user can use :c:func:`uv_fs_readdir_next` to
+ Equivalent to ``scandir(3)``, with a slightly different API. Once the callback
+ for the request is called, the user can use :c:func:`uv_fs_scandir_next` to
get `ent` populated with the next directory entry data. When there are no
more entries ``UV_EOF`` will be returned.
@@ -217,6 +229,10 @@ API
Limited equivalent to ``sendfile(2)``.
+.. c:function:: int uv_fs_access(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, uv_fs_cb cb)
+
+ Equivalent to ``access(2)`` on Unix. Windows uses ``GetFileAttributesW()``.
+
.. c:function:: int uv_fs_chmod(uv_loop_t* loop, uv_fs_t* req, const char* path, int mode, uv_fs_cb cb)
.. c:function:: int uv_fs_fchmod(uv_loop_t* loop, uv_fs_t* req, uv_file file, int mode, uv_fs_cb cb)
diff --git a/deps/uv/docs/src/fs_poll.rst b/deps/uv/docs/src/fs_poll.rst
index 2e64bfb70d..7459aac07b 100644
--- a/deps/uv/docs/src/fs_poll.rst
+++ b/deps/uv/docs/src/fs_poll.rst
@@ -42,6 +42,10 @@ N/A
API
---
+.. c:function:: int uv_fs_poll_init(uv_loop_t* loop, uv_fs_poll_t* handle)
+
+ Initialize the handle.
+
.. c:function:: int uv_fs_poll_start(uv_fs_poll_t* handle, uv_fs_poll_cb poll_cb, const char* path, unsigned int interval)
Check the file at `path` for changes every `interval` milliseconds.
diff --git a/deps/uv/docs/src/handle.rst b/deps/uv/docs/src/handle.rst
index ae8efb70df..4dcfc3dd90 100644
--- a/deps/uv/docs/src/handle.rst
+++ b/deps/uv/docs/src/handle.rst
@@ -21,6 +21,15 @@ Data types
Union of all handle types.
+.. c:type:: void (*uv_alloc_cb)(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf)
+
+ Type definition for callback passed to :c:func:`uv_read_start` and
+ :c:func:`uv_udp_recv_start`. The user must fill the supplied :c:type:`uv_buf_t`
+ structure with whatever size, as long as it's > 0. A suggested size (65536 at the moment)
+ is provided, but it doesn't need to be honored. Setting the buffer's length to 0
+ will trigger a ``UV_ENOBUFS`` error in the :c:type:`uv_udp_recv_cb` or
+ :c:type:`uv_read_cb` callback.
+
.. c:type:: void (*uv_close_cb)(uv_handle_t* handle)
Type definition for callback passed to :c:func:`uv_close`.
diff --git a/deps/uv/docs/src/index.rst b/deps/uv/docs/src/index.rst
index 112a0d04c9..ce30cf9651 100644
--- a/deps/uv/docs/src/index.rst
+++ b/deps/uv/docs/src/index.rst
@@ -50,6 +50,17 @@ Installation
Installation instructions can be found on `the README <https://github.com/joyent/libuv/blob/master/README.md>`_.
+Upgrading
+---------
+
+Migration guides for different libuv versions, starting with 1.0.
+
+.. toctree::
+ :maxdepth: 1
+
+ migration_010_100
+
+
Documentation
-------------
diff --git a/deps/uv/docs/src/loop.rst b/deps/uv/docs/src/loop.rst
index bc2afe2ff6..c63ef7eb67 100644
--- a/deps/uv/docs/src/loop.rst
+++ b/deps/uv/docs/src/loop.rst
@@ -38,7 +38,9 @@ Public members
.. c:member:: void* uv_loop_t.data
- Space for user-defined arbitrary data. libuv does not use this field.
+ Space for user-defined arbitrary data. libuv does not use this field. libuv does, however,
+ initialize it to NULL in :c:func:`uv_loop_init`, and it poisons the value (on debug builds)
+ on :c:func:`uv_loop_close`.
API
diff --git a/deps/uv/docs/src/migration_010_100.rst b/deps/uv/docs/src/migration_010_100.rst
new file mode 100644
index 0000000000..83b3865567
--- /dev/null
+++ b/deps/uv/docs/src/migration_010_100.rst
@@ -0,0 +1,244 @@
+
+.. _migration_010_100:
+
+libuv 0.10 -> 1.0.0 migration guide
+===================================
+
+Some APIs changed quite a bit throughout the 1.0.0 development process. Here
+is a migration guide for the most significant changes that happened after 0.10
+was released.
+
+
+Loop initialization and closing
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In libuv 0.10 (and previous versions), loops were created with `uv_loop_new`, which
+allocated memory for a new loop and initialized it; and destroyed with `uv_loop_delete`,
+which destroyed the loop and freed the memory. Starting with 1.0, those are deprecated
+and the user is responsible for allocating the memory and then initializing the loop.
+
+libuv 0.10
+
+::
+
+ uv_loop_t* loop = uv_loop_new();
+ ...
+ uv_loop_delete(loop);
+
+libuv 1.0
+
+::
+
+ uv_loop_t* loop = malloc(sizeof *loop);
+ uv_loop_init(loop);
+ ...
+ uv_loop_close(loop);
+ free(loop);
+
+.. note::
+ Error handling was omitted for brevity. Check the documentation for :c:func:`uv_loop_init`
+ and :c:func:`uv_loop_close`.
+
+
+Error handling
+~~~~~~~~~~~~~~
+
+Error handling had a major overhaul in libuv 1.0. In general, functions and status parameters
+would get 0 for success and -1 for failure on libuv 0.10, and the user had to use `uv_last_error`
+to fetch the error code, which was a positive number.
+
+In 1.0, functions and status parameters contain the actual error code, which is 0 for success, or
+a negative number in case of error.
+
+libuv 0.10
+
+::
+
+ ... assume 'server' is a TCP server which is already listening
+ r = uv_listen((uv_stream_t*) server, 511, NULL);
+ if (r == -1) {
+ uv_err_t err = uv_last_error(uv_default_loop());
+ /* err.code contains UV_EADDRINUSE */
+ }
+
+libuv 1.0
+
+::
+
+ ... assume 'server' is a TCP server which is already listening
+ r = uv_listen((uv_stream_t*) server, 511, NULL);
+ if (r < 0) {
+ /* r contains UV_EADDRINUSE */
+ }
+
+
+Threadpool changes
+~~~~~~~~~~~~~~~~~~
+
+In libuv 0.10 Unix used a threadpool which defaulted to 4 threads, while Windows used the
+`QueueUserWorkItem` API, which uses a Windows internal threadpool, which defaults to 512
+threads per process.
+
+In 1.0, we unified both implementations, so Windows now uses the same implementation Unix
+does. The threadppol size can be set by exporting the ``UV_THREADPOOL_SIZE`` environment
+variable. See :c:ref:`threadpool`.
+
+
+Allocation callback API change
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In libuv 0.10 the callback had to return a filled :c:type:`uv_buf_t` by value:
+
+::
+
+ uv_buf_t alloc_cb(uv_handle_t* handle, size_t size) {
+ return uv_buf_init(malloc(size), size);
+ }
+
+In libuv 1.0 a pointer to a buffer is passed to the callbck, which the user
+needs to fill:
+
+::
+
+ void alloc_cb(uv_handle_t* handle, size_t size, uv_buf_t* buf) {
+ buf->base = malloc(size);
+ buf->len = size;
+ }
+
+
+Unification of IPv4 / IPv6 APIs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+libuv 1.0 unified the IPv4 and IPv6 APIS. There is no longer a `uv_tcp_bind` and `uv_tcp_bind6`
+duality, there is only :c:func:`uv_tcp_bind` now.
+
+IPv4 functions took ``struct sockaddr_in`` structures by value, and IPv6 functions took
+``struct sockaddr_in6``. Now functions take a ``struct sockaddr*`` (note it's a pointer).
+It can be stack allocated.
+
+libuv 0.10
+
+::
+
+ struct sockaddr_in addr = uv_ip4_addr("0.0.0.0", 1234);
+ ...
+ uv_tcp_bind(&server, addr)
+
+libuv 1.0
+
+::
+
+ struct sockaddr_in addr;
+ uv_ip4_addr("0.0.0.0", 1234, &addr)
+ ...
+ uv_tcp_bind(&server, (const struct sockaddr*) &addr, 0);
+
+The IPv4 and IPv6 struct creating functions (:c:func:`uv_ip4_addr` and :c:func:`uv_ip6_addr`)
+have also changed, make sure you check the documentation.
+
+..note::
+ This change applies to all functions that made a distinction between IPv4 and IPv6
+ addresses.
+
+
+Streams / UDP data receive callback API change
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The streams and UDP data receive callbacks now get a pointer to a :c:type:`uv_buf_t` buffer,
+not a structure by value.
+
+libuv 0.10
+
+::
+
+ void on_read(uv_stream_t* handle,
+ ssize_t nread,
+ uv_buf_t buf) {
+ ...
+ }
+
+ void recv_cb(uv_udp_t* handle,
+ ssize_t nread,
+ uv_buf_t buf,
+ struct sockaddr* addr,
+ unsigned flags) {
+ ...
+ }
+
+libuv 1.0
+
+::
+
+ void on_read(uv_stream_t* handle,
+ ssize_t nread,
+ const uv_buf_t* buf) {
+ ...
+ }
+
+ void recv_cb(uv_udp_t* handle,
+ ssize_t nread,
+ const uv_buf_t* buf,
+ const struct sockaddr* addr,
+ unsigned flags) {
+ ...
+ }
+
+
+Receiving handles over pipes API change
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In libuv 0.10 (and earlier versions) the `uv_read2_start` function was used to start reading
+data on a pipe, which could also result in the reception of handles over it. The callback
+for such function looked like this:
+
+::
+
+ void on_read(uv_pipe_t* pipe,
+ ssize_t nread,
+ uv_buf_t buf,
+ uv_handle_type pending) {
+ ...
+ }
+
+In libuv 1.0, `uv_read2_start` was removed, and the user needs to check if there are penging
+handles using :c:func:`uv_pipe_pending_count` and :c:func:`uv_pipe_pending_type` while in
+the read callback:
+
+::
+
+ void on_read(uv_stream_t* handle,
+ ssize_t nread,
+ const uv_buf_t* buf) {
+ ...
+ while (uv_pipe_pending_count((uv_pipe_t*) handle) != 0) {
+ pending = uv_pipe_pending_type((uv_pipe_t*) handle);
+ ...
+ }
+ ...
+ }
+
+
+Extracting the file descriptor out of a handle
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+While it wasn't supported by the API, users often accessed the libuv internals in
+order to get access to the file descript of a TCP handle, for example.
+
+::
+
+ fd = handle->io_watcher.fd;
+
+This is now properly exposed through the :c:func:`uv_fileno` function.
+
+
+uv_fs_readdir rename and API change
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`uv_fs_readdir` returned a list of strings in the `req->ptr` field upon completion in
+libuv 0.10. In 1.0, this function got renamed to :c:func:`uv_fs_scandir`, since it's
+actually implemented using ``scandir(3)``.
+
+In addition, instead of allocating a full list strings, the user is able to get one
+result at a time by using the :c:func:`uv_fs_scandir_next` function. This function
+does not need to make a roundtrip to the threadpool, because libuv will keep the
+list of *dents* returned by ``scandir(3)`` around.
diff --git a/deps/uv/docs/src/process.rst b/deps/uv/docs/src/process.rst
index fccfc00ca8..b0380ddfb7 100644
--- a/deps/uv/docs/src/process.rst
+++ b/deps/uv/docs/src/process.rst
@@ -212,4 +212,14 @@ API
setgid specified, or not having enough memory to allocate for the new
process.
+.. c:function:: int uv_process_kill(uv_process_t* handle, int signum)
+
+ Sends the specified signal to the given process handle. Check the documentation
+ on :c:ref:`signal` for signal support, specially on Windows.
+
+.. c:function:: int uv_kill(int pid, int signum)
+
+ Sends the specified signal to the given PID. Check the documentation
+ on :c:ref:`signal` for signal support, specially on Windows.
+
.. seealso:: The :c:type:`uv_handle_t` API functions also apply.
diff --git a/deps/uv/docs/src/stream.rst b/deps/uv/docs/src/stream.rst
index 686efa1b30..44dccbe942 100644
--- a/deps/uv/docs/src/stream.rst
+++ b/deps/uv/docs/src/stream.rst
@@ -16,6 +16,18 @@ Data types
Stream handle type.
+.. c:type:: uv_connect_t
+
+ Connect request type.
+
+.. c:type:: uv_shutdown_t
+
+ Shutdown request type.
+
+.. c:type:: uv_write_t
+
+ Write request type.
+
.. c:type:: void (*uv_read_cb)(uv_stream_t* stream, ssize_t nread, const uv_buf_t* buf)
Callback called when data was read on a stream.
@@ -60,6 +72,22 @@ Public members
Contains the amount of queued bytes waiting to be sent. Readonly.
+.. c:member:: uv_stream_t* uv_connect_t.handle
+
+ Pointer to the stream where this connection request is running.
+
+.. c:member:: uv_stream_t* uv_shutdown_t.handle
+
+ Pointer to the stream where this shutdown request is running.
+
+.. c:member:: uv_stream_t* uv_write_t.handle
+
+ Pointer to the stream where this write request is running.
+
+.. c:member:: uv_stream_t* uv_write_t.send_handle
+
+ Pointer to the stream being sent using this write request..
+
.. seealso:: The :c:type:`uv_handle_t` members also apply.
diff --git a/deps/uv/docs/src/threading.rst b/deps/uv/docs/src/threading.rst
index 38daf4e5a1..0d6c0df13f 100644
--- a/deps/uv/docs/src/threading.rst
+++ b/deps/uv/docs/src/threading.rst
@@ -58,6 +58,7 @@ Threads
.. c:function:: int uv_thread_create(uv_thread_t* tid, uv_thread_cb entry, void* arg)
.. c:function:: unsigned long uv_thread_self(void)
.. c:function:: int uv_thread_join(uv_thread_t *tid)
+.. c:function:: int uv_thread_equal(const uv_thread_t* t1, const uv_thread_t* t2)
Thread-local storage
^^^^^^^^^^^^^^^^^^^^