Browse Source

uv: Upgrade to v0.10.22

v0.10.25-release
Timothy J Fontaine 11 years ago
parent
commit
30b3bc2f7c
  1. 9
      deps/uv/ChangeLog
  2. 1
      deps/uv/build.mk
  3. 1
      deps/uv/checksparse.sh
  4. 3
      deps/uv/src/unix/kqueue.c
  5. 2
      deps/uv/src/version.c
  6. 7
      deps/uv/src/win/pipe.c
  7. 2
      deps/uv/test/test-ipc.c
  8. 2
      deps/uv/test/test-list.h
  9. 91
      deps/uv/test/test-pipe-server-close.c
  10. 2
      deps/uv/test/test-poll-close.c
  11. 1
      deps/uv/uv.gyp

9
deps/uv/ChangeLog

@ -1,4 +1,11 @@
2013.12.19, Version 0.10.21 (Stable) 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)
2013.12.19, Version 0.10.21 (Stable), 375ebce068555f0ca8151b562edb5f1b263022db
Changes since version 0.10.20: Changes since version 0.10.20:

1
deps/uv/build.mk

@ -98,6 +98,7 @@ TESTS= \
test/test-ping-pong.o \ test/test-ping-pong.o \
test/test-pipe-bind-error.o \ test/test-pipe-bind-error.o \
test/test-pipe-connect-error.o \ test/test-pipe-connect-error.o \
test/test-pipe-server-close.o \
test/test-platform-output.o \ test/test-platform-output.o \
test/test-poll.o \ test/test-poll.o \
test/test-poll-close.o \ test/test-poll-close.o \

1
deps/uv/checksparse.sh

@ -116,6 +116,7 @@ test/test-pass-always.c
test/test-ping-pong.c test/test-ping-pong.c
test/test-pipe-bind-error.c test/test-pipe-bind-error.c
test/test-pipe-connect-error.c test/test-pipe-connect-error.c
test/test-pipe-server-close.c
test/test-platform-output.c test/test-platform-output.c
test/test-poll-close.c test/test-poll-close.c
test/test-poll.c test/test-poll.c

3
deps/uv/src/unix/kqueue.c

@ -168,11 +168,10 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
for (i = 0; i < nfds; i++) { for (i = 0; i < nfds; i++) {
ev = events + i; ev = events + i;
fd = ev->ident; fd = ev->ident;
w = loop->watchers[fd];
/* Skip invalidated events, see uv__platform_invalidate_fd */ /* Skip invalidated events, see uv__platform_invalidate_fd */
if (fd == -1) if (fd == -1)
continue; continue;
w = loop->watchers[fd];
if (w == NULL) { if (w == NULL) {
/* File descriptor that we've stopped watching, disarm it. */ /* File descriptor that we've stopped watching, disarm it. */

2
deps/uv/src/version.c

@ -34,7 +34,7 @@
#define UV_VERSION_MAJOR 0 #define UV_VERSION_MAJOR 0
#define UV_VERSION_MINOR 10 #define UV_VERSION_MINOR 10
#define UV_VERSION_PATCH 21 #define UV_VERSION_PATCH 22
#define UV_VERSION_IS_RELEASE 1 #define UV_VERSION_IS_RELEASE 1

7
deps/uv/src/win/pipe.c

@ -1480,6 +1480,13 @@ void uv_process_pipe_accept_req(uv_loop_t* loop, uv_pipe_t* handle,
assert(handle->type == UV_NAMED_PIPE); 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)) { if (REQ_SUCCESS(req)) {
assert(req->pipeHandle != INVALID_HANDLE_VALUE); assert(req->pipeHandle != INVALID_HANDLE_VALUE);
req->next_pending = handle->pending_accepts; req->next_pending = handle->pending_accepts;

2
deps/uv/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; return;
} }
printf("error recving on tcp connection: %s\n", printf("error recving on tcp connection: %s\n",
uv_strerror(uv_last_error(tcp->loop))); uv_strerror(uv_last_error(tcp->loop)));
abort(); abort();
} }

2
deps/uv/test/test-list.h

@ -88,6 +88,7 @@ TEST_DECLARE (pipe_bind_error_inval)
TEST_DECLARE (pipe_listen_without_bind) TEST_DECLARE (pipe_listen_without_bind)
TEST_DECLARE (pipe_connect_bad_name) TEST_DECLARE (pipe_connect_bad_name)
TEST_DECLARE (pipe_connect_to_file) TEST_DECLARE (pipe_connect_to_file)
TEST_DECLARE (pipe_server_close)
TEST_DECLARE (connection_fail) TEST_DECLARE (connection_fail)
TEST_DECLARE (connection_fail_doesnt_auto_close) TEST_DECLARE (connection_fail_doesnt_auto_close)
TEST_DECLARE (shutdown_close_tcp) TEST_DECLARE (shutdown_close_tcp)
@ -257,6 +258,7 @@ TASK_LIST_START
TEST_ENTRY (pipe_connect_bad_name) TEST_ENTRY (pipe_connect_bad_name)
TEST_ENTRY (pipe_connect_to_file) TEST_ENTRY (pipe_connect_to_file)
TEST_ENTRY (pipe_server_close)
TEST_ENTRY (tty) TEST_ENTRY (tty)
TEST_ENTRY (stdio_over_pipes) TEST_ENTRY (stdio_over_pipes)
TEST_ENTRY (ipc_listen_before_write) TEST_ENTRY (ipc_listen_before_write)

91
deps/uv/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 <string.h>
#include <errno.h>
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;
}

2
deps/uv/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_init_socket(uv_default_loop(), &poll_handles[i], sockets[i]);
uv_poll_start(&poll_handles[i], UV_READABLE | UV_WRITABLE, NULL); uv_poll_start(&poll_handles[i], UV_READABLE | UV_WRITABLE, NULL);
} }
for (i = 0; i < NUM_SOCKETS; i++) { for (i = 0; i < NUM_SOCKETS; i++) {
uv_close((uv_handle_t*) &poll_handles[i], close_cb); uv_close((uv_handle_t*) &poll_handles[i], close_cb);
} }

1
deps/uv/uv.gyp

@ -318,6 +318,7 @@
'test/test-ping-pong.c', 'test/test-ping-pong.c',
'test/test-pipe-bind-error.c', 'test/test-pipe-bind-error.c',
'test/test-pipe-connect-error.c', 'test/test-pipe-connect-error.c',
'test/test-pipe-server-close.c',
'test/test-platform-output.c', 'test/test-platform-output.c',
'test/test-poll.c', 'test/test-poll.c',
'test/test-poll-close.c', 'test/test-poll-close.c',

Loading…
Cancel
Save