uv: Upgrade to 86ae8b3c
authorisaacs <i@izs.me>
Mon, 25 Feb 2013 21:07:08 +0000 (13:07 -0800)
committerisaacs <i@izs.me>
Mon, 25 Feb 2013 21:07:25 +0000 (13:07 -0800)
deps/uv/gyp_uv
deps/uv/src/unix/pipe.c

index d861cbc..9c719fd 100755 (executable)
@@ -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)
 
 
index 957e96f..e0502b0 100644 (file)
@@ -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.