uv: upgrade to 9bd8bd7

This commit is contained in:
Ben Noordhuis
2011-09-12 23:45:00 +02:00
parent 7e7e983781
commit 0d80040adf
41 changed files with 91 additions and 204 deletions

View File

@@ -81,11 +81,10 @@ typedef struct uv_work_s uv_work_t;
* All callbacks in libuv are made asynchronously. That is they are never
* made by the function that takes them as a parameter.
*/
void uv_init();
uv_loop_t* uv_loop_new();
void uv_loop_delete(uv_loop_t*);
/*
* Returns the default loop.
*/

View File

@@ -65,17 +65,6 @@ static void uv__finish_close(uv_handle_t* handle);
#endif
void uv_init() {
default_loop_ptr = &default_loop_struct;
#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
default_loop_struct.ev = ev_default_loop(EVBACKEND_KQUEUE);
#else
default_loop_struct.ev = ev_default_loop(EVFLAG_AUTO);
#endif
ev_set_userdata(default_loop_struct.ev, default_loop_ptr);
}
void uv_close(uv_handle_t* handle, uv_close_cb close_cb) {
uv_udp_t* udp;
uv_async_t* async;
@@ -176,6 +165,15 @@ void uv_loop_delete(uv_loop_t* loop) {
uv_loop_t* uv_default_loop() {
if (!default_loop_ptr) {
default_loop_ptr = &default_loop_struct;
#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
default_loop_struct.ev = ev_default_loop(EVBACKEND_KQUEUE);
#else
default_loop_struct.ev = ev_default_loop(EVFLAG_AUTO);
#endif
ev_set_userdata(default_loop_struct.ev, default_loop_ptr);
}
assert(default_loop_ptr->ev == EV_DEFAULT_UC);
return default_loop_ptr;
}

View File

@@ -38,7 +38,7 @@ int uv_pipe_init(uv_loop_t* loop, uv_pipe_t* handle) {
int uv_pipe_bind(uv_pipe_t* handle, const char* name) {
struct sockaddr_un sun;
struct sockaddr_un saddr;
const char* pipe_fname;
int saved_errno;
int sockfd;
@@ -71,11 +71,11 @@ int uv_pipe_bind(uv_pipe_t* handle, const char* name) {
goto out;
}
memset(&sun, 0, sizeof sun);
uv__strlcpy(sun.sun_path, pipe_fname, sizeof(sun.sun_path));
sun.sun_family = AF_UNIX;
memset(&saddr, 0, sizeof saddr);
uv__strlcpy(saddr.sun_path, pipe_fname, sizeof(saddr.sun_path));
saddr.sun_family = AF_UNIX;
if (bind(sockfd, (struct sockaddr*)&sun, sizeof sun) == -1) {
if (bind(sockfd, (struct sockaddr*)&saddr, sizeof saddr) == -1) {
/* On EADDRINUSE:
*
* We hold the file lock so there is no other process listening
@@ -86,7 +86,7 @@ int uv_pipe_bind(uv_pipe_t* handle, const char* name) {
*/
if (errno != EADDRINUSE
|| unlink(pipe_fname) == -1
|| bind(sockfd, (struct sockaddr*)&sun, sizeof sun) == -1) {
|| bind(sockfd, (struct sockaddr*)&saddr, sizeof saddr) == -1) {
/* Convert ENOENT to EACCES for compatibility with Windows. */
uv_err_new(handle->loop, (errno == ENOENT) ? EACCES : errno);
goto out;
@@ -174,7 +174,7 @@ int uv_pipe_connect(uv_connect_t* req,
uv_pipe_t* handle,
const char* name,
uv_connect_cb cb) {
struct sockaddr_un sun;
struct sockaddr_un saddr;
int saved_errno;
int sockfd;
int status;
@@ -189,15 +189,15 @@ int uv_pipe_connect(uv_connect_t* req,
goto out;
}
memset(&sun, 0, sizeof sun);
uv__strlcpy(sun.sun_path, name, sizeof(sun.sun_path));
sun.sun_family = AF_UNIX;
memset(&saddr, 0, sizeof saddr);
uv__strlcpy(saddr.sun_path, name, sizeof(saddr.sun_path));
saddr.sun_family = AF_UNIX;
/* We don't check for EINPROGRESS. Think about it: the socket
* is either there or not.
*/
do {
r = connect(sockfd, (struct sockaddr*)&sun, sizeof sun);
r = connect(sockfd, (struct sockaddr*)&saddr, sizeof saddr);
}
while (r == -1 && errno == EINTR);
@@ -236,7 +236,7 @@ out:
/* TODO merge with uv__server_io()? */
void uv__pipe_accept(EV_P_ ev_io* watcher, int revents) {
struct sockaddr_un sun;
struct sockaddr_un saddr;
uv_pipe_t* pipe;
int saved_errno;
int sockfd;
@@ -247,7 +247,7 @@ void uv__pipe_accept(EV_P_ ev_io* watcher, int revents) {
assert(pipe->type == UV_NAMED_PIPE);
assert(pipe->pipe_fname != NULL);
sockfd = uv__accept(pipe->fd, (struct sockaddr *)&sun, sizeof sun);
sockfd = uv__accept(pipe->fd, (struct sockaddr *)&saddr, sizeof saddr);
if (sockfd == -1) {
if (errno == EAGAIN || errno == EWOULDBLOCK) {
assert(0 && "EAGAIN on uv__accept(pipefd)");

View File

@@ -33,7 +33,22 @@
/* The only event loop we support right now */
static uv_loop_t uv_default_loop_;
static int uv_default_loop_initialized_ = 0;
/* uv_once intialization guards */
static uv_once_t uv_init_guard_ = UV_ONCE_INIT;
static uv_once_t uv_default_loop_init_guard_ = UV_ONCE_INIT;
static void uv_init(void) {
/* Initialize winsock */
uv_winsock_init();
/* Fetch winapi function pointers */
uv_winapi_init();
/* Initialize FS */
uv_fs_init();
}
static void uv_loop_init(uv_loop_t* loop) {
@@ -68,25 +83,18 @@ static void uv_loop_init(uv_loop_t* loop) {
}
uv_loop_t* uv_default_loop() {
if (!uv_default_loop_initialized_) {
uv_loop_init(&uv_default_loop_);
uv_default_loop_initialized_ = 1;
}
static void uv_default_loop_init(void) {
/* Intialize libuv itself first */
uv_once(&uv_init_guard_, uv_init);
return &uv_default_loop_;
/* Initialize the main loop */
uv_loop_init(&uv_default_loop_);
}
void uv_init() {
/* Initialize winsock */
uv_winsock_init();
/* Fetch winapi function pointers */
uv_winapi_init();
/* Initialize FS */
uv_fs_init();
uv_loop_t* uv_default_loop() {
uv_once(&uv_default_loop_init_guard_, uv_default_loop_init);
return &uv_default_loop_;
}

View File

@@ -279,4 +279,19 @@ void uv_winsock_init();
int uv_ntstatus_to_winsock_error(NTSTATUS status);
/* Threads and synchronization */
typedef struct uv_once_s {
unsigned char ran;
/* The actual event handle must be aligned to sizeof(HANDLE), so in */
/* practice it might overlap padding a little. */
HANDLE event;
HANDLE padding;
} uv_once_t;
#define UV_ONCE_INIT \
{ 0, NULL, NULL }
void uv_once(uv_once_t* guard, void (*callback)(void));
#endif /* UV_WIN_INTERNAL_H_ */

View File

@@ -33,7 +33,7 @@
/* The resolution of the high-resolution clock. */
static int64_t uv_ticks_per_msec_ = 0;
static uint64_t uv_hrtime_frequency_ = 0;
static char uv_hrtime_initialized_ = 0;
static uv_once_t uv_hrtime_init_guard_ = UV_ONCE_INIT;
void uv_update_time(uv_loop_t* loop) {
@@ -57,23 +57,23 @@ int64_t uv_now(uv_loop_t* loop) {
return loop->time;
}
/* TODO: thread safety */
static void uv_hrtime_init(void) {
LARGE_INTEGER frequency;
if (!QueryPerformanceFrequency(&frequency)) {
uv_hrtime_frequency_ = 0;
return;
}
uv_hrtime_frequency_ = frequency.QuadPart;
}
uint64_t uv_hrtime(void) {
LARGE_INTEGER counter;
/* When called for the first time, obtain the high-resolution clock */
/* frequency. */
if (!uv_hrtime_initialized_) {
uv_hrtime_initialized_ = 1;
if (!QueryPerformanceFrequency(&counter)) {
uv_hrtime_frequency_ = 0;
/* uv_set_sys_error(loop, GetLastError()); */
return 0;
}
uv_hrtime_frequency_ = counter.QuadPart;
}
uv_once(&uv_hrtime_init_guard_, uv_hrtime_init);
/* If the performance frequency is zero, there's no support. */
if (!uv_hrtime_frequency_) {

View File

@@ -86,7 +86,6 @@ BENCHMARK_IMPL(gethostbyname) {
return 1;
}
uv_init();
loop = uv_default_loop();
ares_callbacks = 0;

View File

@@ -68,7 +68,6 @@ static void getaddrinfo_initiate(uv_getaddrinfo_t* handle) {
BENCHMARK_IMPL(getaddrinfo) {
int i;
uv_init(loop);
loop = uv_default_loop();
uv_update_time(loop);

View File

@@ -200,7 +200,6 @@ static void pinger_new() {
BENCHMARK_IMPL(ping_pongs) {
uv_init();
loop = uv_default_loop();
start_time = uv_now(loop);

View File

@@ -277,7 +277,6 @@ static int pound_it(int concurrency,
uint64_t start_time; /* in ns */
uint64_t end_time;
uv_init();
loop = uv_default_loop();
uv_update_time(loop);

View File

@@ -367,7 +367,6 @@ HELPER_IMPL(tcp_pump_server) {
int r;
type = TCP;
uv_init();
loop = uv_default_loop();
listen_addr = uv_ip4_addr("0.0.0.0", TEST_PORT);
@@ -391,7 +390,6 @@ HELPER_IMPL(pipe_pump_server) {
int r;
type = PIPE;
uv_init();
loop = uv_default_loop();
/* Server */
@@ -414,7 +412,6 @@ void tcp_pump(int n) {
TARGET_CONNECTIONS = n;
type = TCP;
uv_init();
loop = uv_default_loop();
connect_addr = uv_ip4_addr("127.0.0.1", TEST_PORT);
@@ -431,7 +428,6 @@ void pipe_pump(int n) {
TARGET_CONNECTIONS = n;
type = PIPE;
uv_init();
loop = uv_default_loop();
/* Start making connections */

View File

@@ -132,7 +132,6 @@ BENCHMARK_IMPL(spawn) {
int r;
static int64_t start_time, end_time;
uv_init();
loop = uv_default_loop();
r = uv_exepath(exepath, &exepath_size);

View File

@@ -134,7 +134,6 @@ static int do_packet_storm(int n_senders, int n_receivers) {
ASSERT(n_senders <= MAX_SENDERS);
ASSERT(n_receivers <= MAX_RECEIVERS);
uv_init();
loop = uv_default_loop();
n_senders_ = n_senders;

View File

@@ -317,7 +317,6 @@ static int dns_start(int port) {
HELPER_IMPL(dns_server) {
uv_init();
loop = uv_default_loop();
if (dns_start(TEST_PORT_2))

View File

@@ -272,7 +272,6 @@ static int pipe_echo_start(char* pipeName) {
HELPER_IMPL(tcp4_echo_server) {
uv_init();
loop = uv_default_loop();
if (tcp4_echo_start(TEST_PORT))
@@ -284,7 +283,6 @@ HELPER_IMPL(tcp4_echo_server) {
HELPER_IMPL(tcp6_echo_server) {
uv_init();
loop = uv_default_loop();
if (tcp6_echo_start(TEST_PORT))
@@ -296,7 +294,6 @@ HELPER_IMPL(tcp6_echo_server) {
HELPER_IMPL(pipe_echo_server) {
uv_init();
loop = uv_default_loop();
if (pipe_echo_start(TEST_PIPENAME))

View File

@@ -182,8 +182,6 @@ static void prepare_cb(uv_prepare_t* handle, int status) {
TEST_IMPL(async) {
int r;
uv_init();
r = uv_prepare_init(uv_default_loop(), &prepare_handle);
ASSERT(r == 0);
r = uv_prepare_start(&prepare_handle, prepare_cb);

View File

@@ -176,8 +176,6 @@ static void connect_cb(uv_connect_t* req, int status) {
TEST_IMPL(callback_stack) {
struct sockaddr_in addr = uv_ip4_addr("127.0.0.1", TEST_PORT);
uv_init();
if (uv_tcp_init(uv_default_loop(), &client)) {
FATAL("uv_tcp_init failed");
}

View File

@@ -119,8 +119,6 @@ void connection_fail(uv_connect_cb connect_cb) {
* expect an error.
*/
TEST_IMPL(connection_fail) {
uv_init();
connection_fail(on_connect_with_close);
ASSERT(timer_close_cb_calls == 0);
@@ -136,9 +134,6 @@ TEST_IMPL(connection_fail) {
* attempt.
*/
TEST_IMPL(connection_fail_doesnt_auto_close) {
uv_init();
uv_timer_init(uv_default_loop(), &timer);
connection_fail(on_connect_without_close);

View File

@@ -180,8 +180,6 @@ static void client_connect() {
TEST_IMPL(delayed_accept) {
uv_init();
start_server();
client_connect();

View File

@@ -387,7 +387,6 @@ TEST_IMPL(fs_file_noent) {
uv_fs_t req;
int r;
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &req, "does_not_exist", O_RDONLY, 0, NULL);
@@ -476,7 +475,6 @@ TEST_IMPL(fs_file_async) {
unlink("test_file");
unlink("test_file2");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &open_req1, "test_file", O_WRONLY | O_CREAT,
@@ -539,7 +537,6 @@ TEST_IMPL(fs_file_sync) {
unlink("test_file");
unlink("test_file2");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &open_req1, "test_file", O_WRONLY | O_CREAT,
@@ -625,7 +622,6 @@ TEST_IMPL(fs_async_dir) {
unlink("test_dir/file2");
rmdir("test_dir");
uv_init();
loop = uv_default_loop();
r = uv_fs_mkdir(loop, &mkdir_req, "test_dir", 0755, mkdir_cb);
@@ -713,7 +709,6 @@ TEST_IMPL(fs_async_sendfile) {
struct stat s1, s2;
/* Setup. */
uv_init();
unlink("test_file");
unlink("test_file2");
@@ -781,8 +776,6 @@ TEST_IMPL(fs_fstat) {
/* Setup. */
unlink("test_file");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &req, "test_file", O_RDWR | O_CREAT,
@@ -837,8 +830,6 @@ TEST_IMPL(fs_chmod) {
/* Setup. */
unlink("test_file");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &req, "test_file", O_RDWR | O_CREAT,
@@ -926,8 +917,6 @@ TEST_IMPL(fs_chown) {
/* Setup. */
unlink("test_file");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &req, "test_file", O_RDWR | O_CREAT,
@@ -987,8 +976,6 @@ TEST_IMPL(fs_link) {
unlink("test_file_link");
unlink("test_file_link2");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &req, "test_file", O_RDWR | O_CREAT,
@@ -1073,8 +1060,6 @@ TEST_IMPL(fs_symlink) {
unlink("test_file_symlink_symlink");
unlink("test_file_symlink2_symlink");
uv_init();
loop = uv_default_loop();
r = uv_fs_open(loop, &req, "test_file", O_RDWR | O_CREAT,
@@ -1187,7 +1172,6 @@ TEST_IMPL(fs_utime) {
uv_fs_t req;
int r;
uv_init();
loop = uv_default_loop();
atime = mtime = 400497753; /* 1982-09-10 11:22:33 */
@@ -1228,7 +1212,6 @@ TEST_IMPL(fs_futime) {
uv_fs_t req;
int r;
uv_init();
loop = uv_default_loop();
atime = mtime = 400497753; /* 1982-09-10 11:22:33 */

View File

@@ -72,9 +72,6 @@ static void getaddrinfo_cuncurrent_cb(uv_getaddrinfo_t* handle,
TEST_IMPL(getaddrinfo_basic) {
int r;
uv_init();
r = uv_getaddrinfo(uv_default_loop(),
&getaddrinfo_handle,
&getaddrinfo_basic_cb,
@@ -95,8 +92,6 @@ TEST_IMPL(getaddrinfo_concurrent) {
int i, r;
int* data;
uv_init();
for (i = 0; i < CONCURRENT_COUNT; i++) {
callback_counts[i] = 0;

View File

@@ -90,8 +90,6 @@ TEST_IMPL(gethostbyname) {
return 1;
}
uv_init();
printf("Start basic gethostbyname test\n");
prep_tcploopback();

View File

@@ -309,7 +309,6 @@ static void udp_sender(void) {
TEST_IMPL(getsockname_tcp) {
uv_init();
loop = uv_default_loop();
if (tcp_listener())
@@ -327,7 +326,6 @@ TEST_IMPL(getsockname_tcp) {
TEST_IMPL(getsockname_udp) {
uv_init();
loop = uv_default_loop();
if (udp_listener())

View File

@@ -60,9 +60,6 @@ static void idle_cb(uv_idle_t* handle, int status) {
TEST_IMPL(idle_starvation) {
int r;
uv_init();
r = uv_idle_init(uv_default_loop(), &idle_handle);
ASSERT(r == 0);
r = uv_idle_start(&idle_handle, idle_cb);

View File

@@ -299,9 +299,6 @@ TEST_IMPL(loop_handles) {
int i;
int r;
uv_init();
r = uv_prepare_init(uv_default_loop(), &prepare_1_handle);
ASSERT(r == 0);
r = uv_prepare_start(&prepare_1_handle, prepare_1_cb);

View File

@@ -221,8 +221,6 @@ static void pipe_pinger_new() {
TEST_IMPL(tcp_ping_pong) {
uv_init();
tcp_pinger_new();
uv_run(uv_default_loop());
@@ -233,8 +231,6 @@ TEST_IMPL(tcp_ping_pong) {
TEST_IMPL(tcp_ping_pong_v6) {
uv_init();
tcp_pinger_v6_new();
uv_run(uv_default_loop());
@@ -245,8 +241,6 @@ TEST_IMPL(tcp_ping_pong_v6) {
TEST_IMPL(pipe_ping_pong) {
uv_init();
pipe_pinger_new();
uv_run(uv_default_loop());

View File

@@ -45,9 +45,6 @@ TEST_IMPL(pipe_bind_error_addrinuse) {
uv_pipe_t server1, server2;
int r;
uv_init();
r = uv_pipe_init(uv_default_loop(), &server1);
ASSERT(r == 0);
r = uv_pipe_bind(&server1, TEST_PIPENAME);
@@ -82,9 +79,6 @@ TEST_IMPL(pipe_bind_error_addrnotavail) {
uv_pipe_t server;
int r;
uv_init();
r = uv_pipe_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_pipe_bind(&server, BAD_PIPENAME);
@@ -106,9 +100,6 @@ TEST_IMPL(pipe_bind_error_inval) {
uv_pipe_t server;
int r;
uv_init();
r = uv_pipe_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_pipe_bind(&server, TEST_PIPENAME);
@@ -132,9 +123,6 @@ TEST_IMPL(pipe_listen_without_bind) {
uv_pipe_t server;
int r;
uv_init();
r = uv_pipe_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_listen((uv_stream_t*)&server, SOMAXCONN, NULL);

View File

@@ -24,7 +24,6 @@
TEST_IMPL(ref) {
uv_init();
uv_run(uv_default_loop());
return 0;
}
@@ -32,7 +31,6 @@ TEST_IMPL(ref) {
TEST_IMPL(idle_ref) {
uv_idle_t h;
uv_init();
uv_idle_init(uv_default_loop(), &h);
uv_idle_start(&h, NULL);
uv_unref(uv_default_loop());
@@ -43,7 +41,6 @@ TEST_IMPL(idle_ref) {
TEST_IMPL(async_ref) {
uv_async_t h;
uv_init();
uv_async_init(uv_default_loop(), &h, NULL);
uv_unref(uv_default_loop());
uv_run(uv_default_loop());
@@ -53,7 +50,6 @@ TEST_IMPL(async_ref) {
TEST_IMPL(prepare_ref) {
uv_prepare_t h;
uv_init();
uv_prepare_init(uv_default_loop(), &h);
uv_prepare_start(&h, NULL);
uv_unref(uv_default_loop());
@@ -64,7 +60,6 @@ TEST_IMPL(prepare_ref) {
TEST_IMPL(check_ref) {
uv_check_t h;
uv_init();
uv_check_init(uv_default_loop(), &h);
uv_check_start(&h, NULL);
uv_unref(uv_default_loop());
@@ -83,8 +78,6 @@ static void prepare_cb(uv_prepare_t* handle, int status) {
TEST_IMPL(unref_in_prepare_cb) {
uv_prepare_t h;
uv_init();
uv_prepare_init(uv_default_loop(), &h);
uv_prepare_start(&h, prepare_cb);
uv_run(uv_default_loop());

View File

@@ -153,8 +153,6 @@ TEST_IMPL(shutdown_eof) {
struct sockaddr_in server_addr;
int r;
uv_init();
qbuf.base = "Q";
qbuf.len = 1;

View File

@@ -117,8 +117,6 @@ static void timer_cb(uv_timer_t* handle, int status) {
TEST_IMPL(spawn_exit_code) {
int r;
uv_init();
init_process_options("spawn_helper1", exit_cb);
r = uv_spawn(uv_default_loop(), &process, options);
@@ -138,8 +136,6 @@ TEST_IMPL(spawn_stdout) {
int r;
uv_pipe_t out;
uv_init();
init_process_options("spawn_helper2", exit_cb);
uv_pipe_init(uv_default_loop(), &out);
@@ -171,8 +167,6 @@ int r;
uv_buf_t buf;
char buffer[] = "hello-from-spawn_stdin";
uv_init();
init_process_options("spawn_helper3", exit_cb);
uv_pipe_init(uv_default_loop(), &out);
@@ -205,8 +199,6 @@ int r;
TEST_IMPL(spawn_and_kill) {
int r;
uv_init();
init_process_options("spawn_helper4", kill_cb);
r = uv_spawn(uv_default_loop(), &process, options);
@@ -235,8 +227,6 @@ TEST_IMPL(spawn_detect_pipe_name_collisions_on_windows) {
char name[64];
HANDLE pipe_handle;
uv_init();
init_process_options("spawn_helper2", exit_cb);
uv_pipe_init(uv_default_loop(), &out);

View File

@@ -39,9 +39,6 @@ TEST_IMPL(tcp_bind_error_addrinuse) {
uv_tcp_t server1, server2;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server1);
ASSERT(r == 0);
r = uv_tcp_bind(&server1, addr);
@@ -75,9 +72,6 @@ TEST_IMPL(tcp_bind_error_addrnotavail_1) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind(&server, addr);
@@ -102,8 +96,6 @@ TEST_IMPL(tcp_bind_error_addrnotavail_2) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind(&server, addr);
@@ -128,9 +120,6 @@ TEST_IMPL(tcp_bind_error_fault) {
garbage_addr = (struct sockaddr_in*) &garbage;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind(&server, *garbage_addr);
@@ -155,9 +144,6 @@ TEST_IMPL(tcp_bind_error_inval) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind(&server, addr1);
@@ -183,9 +169,6 @@ TEST_IMPL(tcp_bind_localhost_ok) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind(&server, addr);
@@ -199,8 +182,6 @@ TEST_IMPL(tcp_listen_without_bind) {
int r;
uv_tcp_t server;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_listen((uv_stream_t*)&server, 128, NULL);

View File

@@ -39,9 +39,6 @@ TEST_IMPL(tcp_bind6_error_addrinuse) {
uv_tcp_t server1, server2;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server1);
ASSERT(r == 0);
r = uv_tcp_bind6(&server1, addr);
@@ -75,9 +72,6 @@ TEST_IMPL(tcp_bind6_error_addrnotavail) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind6(&server, addr);
@@ -102,9 +96,6 @@ TEST_IMPL(tcp_bind6_error_fault) {
garbage_addr = (struct sockaddr_in6*) &garbage;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind6(&server, *garbage_addr);
@@ -129,9 +120,6 @@ TEST_IMPL(tcp_bind6_error_inval) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind6(&server, addr1);
@@ -157,9 +145,6 @@ TEST_IMPL(tcp_bind6_localhost_ok) {
uv_tcp_t server;
int r;
uv_init();
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_tcp_bind6(&server, addr);

View File

@@ -176,9 +176,6 @@ TEST_IMPL(tcp_writealot) {
ASSERT(send_buffer != NULL);
uv_init();
r = uv_tcp_init(uv_default_loop(), client);
ASSERT(r == 0);

View File

@@ -45,8 +45,6 @@ static void after_work_cb(uv_work_t* req) {
TEST_IMPL(threadpool_queue_work_simple) {
int r;
uv_init();
work_req.data = &data;
r = uv_queue_work(uv_default_loop(), &work_req, work_cb, after_work_cb);
ASSERT(r == 0);

View File

@@ -95,9 +95,6 @@ static void repeat_2_cb(uv_timer_t* handle, int status) {
TEST_IMPL(timer_again) {
int r;
uv_init();
start_time = uv_now(uv_default_loop());
ASSERT(0 < start_time);

View File

@@ -90,8 +90,6 @@ TEST_IMPL(timer) {
uv_timer_t repeat, never;
int i, r;
uv_init();
start_time = uv_now(uv_default_loop());
ASSERT(0 < start_time);

View File

@@ -65,8 +65,6 @@ TEST_IMPL(udp_dgram_too_big) {
memset(dgram, 42, sizeof dgram); /* silence valgrind */
uv_init();
r = uv_udp_init(uv_default_loop(), &handle_);
ASSERT(r == 0);

View File

@@ -100,8 +100,6 @@ static void do_test(uv_udp_recv_cb recv_cb, int bind_flags) {
uv_buf_t buf;
int r;
uv_init();
addr6 = uv_ip6_addr("::0", TEST_PORT);
r = uv_udp_init(uv_default_loop(), &server);

View File

@@ -170,8 +170,6 @@ TEST_IMPL(udp_send_and_recv) {
addr = uv_ip4_addr("0.0.0.0", TEST_PORT);
uv_init();
r = uv_udp_init(uv_default_loop(), &server);
ASSERT(r == 0);

15
deps/uv/uv.gyp vendored
View File

@@ -114,6 +114,7 @@
'src/win/stream.c',
'src/win/tcp.c',
'src/win/threadpool.c',
'src/win/threads.c',
'src/win/timer.c',
'src/win/udp.c',
'src/win/util.c',
@@ -209,7 +210,19 @@
'libraries': [ '-lrt' ],
},
}],
# TODO add OS=='sun'
[ 'OS=="solaris"', {
'include_dirs': [ 'src/ares/config_sunos' ],
'sources': [ 'src/unix/sunos.c' ],
'defines': [
'__EXTENSIONS__',
'_XOPEN_SOURCE=500',
'EV_CONFIG_H="config_sunos.h"',
'EIO_CONFIG_H="config_sunos.h"',
],
'direct_dependent_settings': {
'libraries': [ '-lrt' ],
},
}],
]
},

View File

@@ -2506,8 +2506,6 @@ int Start(int argc, char *argv[]) {
pthread_win32_process_attach_np();
#endif
uv_init();
// This needs to run *before* V8::Initialize()
argv = Init(argc, argv);