summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2013-02-25 13:07:08 -0800
committerisaacs <i@izs.me>2013-02-25 13:07:25 -0800
commitff540e19a4d5437477d25586fe1dd01d66f8f69a (patch)
tree28703627961038e8d65f082056a7772934f6ef6d
parentb0e7dbf2c0bab37018e64d14d176d0236c11cd87 (diff)
downloadnode-ff540e19a4d5437477d25586fe1dd01d66f8f69a.tar.gz
uv: Upgrade to 86ae8b3c
-rwxr-xr-xdeps/uv/gyp_uv4
-rw-r--r--deps/uv/src/unix/pipe.c11
2 files changed, 8 insertions, 7 deletions
diff --git a/deps/uv/gyp_uv b/deps/uv/gyp_uv
index d861cbc78..9c719fde5 100755
--- a/deps/uv/gyp_uv
+++ b/deps/uv/gyp_uv
@@ -22,7 +22,9 @@ def compiler_version():
proc = subprocess.Popen(CC.split() + ['--version'], stdout=subprocess.PIPE)
is_clang = 'clang' in proc.communicate()[0].split('\n')[0]
proc = subprocess.Popen(CC.split() + ['-dumpversion'], stdout=subprocess.PIPE)
- version = tuple(map(int, proc.communicate()[0].split('.')))
+ version = proc.communicate()[0].split('.')
+ version = map(int, version[:2])
+ version = tuple(version)
return (version, is_clang)
diff --git a/deps/uv/src/unix/pipe.c b/deps/uv/src/unix/pipe.c
index 957e96f8a..e0502b03d 100644
--- a/deps/uv/src/unix/pipe.c
+++ b/deps/uv/src/unix/pipe.c
@@ -186,16 +186,14 @@ void uv_pipe_connect(uv_connect_t* req,
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(handle->fd, (struct sockaddr*)&saddr, sizeof saddr);
}
while (r == -1 && errno == EINTR);
if (r == -1)
- goto out;
+ if (errno != EINPROGRESS)
+ goto out;
if (new_sock)
if (uv__stream_open((uv_stream_t*)handle,
@@ -216,8 +214,9 @@ out:
req->cb = cb;
ngx_queue_init(&req->queue);
- /* Run callback on next tick. */
- uv__io_feed(handle->loop, &handle->write_watcher, UV__IO_WRITE);
+ /* Force callback to run on next tick in case of error. */
+ if (err != 0)
+ uv__io_feed(handle->loop, &handle->write_watcher, UV__IO_WRITE);
/* Mimic the Windows pipe implementation, always
* return 0 and let the callback handle errors.