Browse Source

uv: upgrade to 5b8a112

v0.8.7-release
isaacs 13 years ago
parent
commit
3644b0bc96
  1. 3
      deps/uv/common.gypi
  2. 8
      deps/uv/src/unix/core.c
  3. 26
      deps/uv/src/unix/linux/syscalls.c

3
deps/uv/common.gypi

@ -32,6 +32,9 @@
'LinkIncremental': 2, # enable incremental linking 'LinkIncremental': 2, # enable incremental linking
}, },
}, },
'xcode_settings': {
'GCC_OPTIMIZATION_LEVEL': '0',
},
'conditions': [ 'conditions': [
['OS != "win"', { ['OS != "win"', {
'defines': [ 'EV_VERIFY=2' ], 'defines': [ 'EV_VERIFY=2' ],

8
deps/uv/src/unix/core.c

@ -426,6 +426,11 @@ int uv__accept(int sockfd) {
while (1) { while (1) {
#if __linux__ #if __linux__
static int no_accept4;
if (no_accept4)
goto skip;
peerfd = uv__accept4(sockfd, peerfd = uv__accept4(sockfd,
NULL, NULL,
NULL, NULL,
@ -439,6 +444,9 @@ int uv__accept(int sockfd) {
if (errno != ENOSYS) if (errno != ENOSYS)
break; break;
no_accept4 = 1;
skip:
#endif #endif
peerfd = accept(sockfd, NULL, NULL); peerfd = accept(sockfd, NULL, NULL);

26
deps/uv/src/unix/linux/syscalls.c

@ -152,13 +152,25 @@
int uv__accept4(int fd, struct sockaddr* addr, socklen_t* addrlen, int flags) { int uv__accept4(int fd, struct sockaddr* addr, socklen_t* addrlen, int flags) {
#if __i386__ #if __i386__
unsigned long args[] = { unsigned long args[4];
(unsigned long) fd, int r;
(unsigned long) addr,
(unsigned long) addrlen, args[0] = (unsigned long) fd;
(unsigned long) flags args[1] = (unsigned long) addr;
}; args[2] = (unsigned long) addrlen;
return syscall(__NR_socketcall, 18 /* SYS_ACCEPT4 */, args); args[3] = (unsigned long) flags;
r = syscall(__NR_socketcall, 18 /* SYS_ACCEPT4 */, args);
/* socketcall() raises EINVAL when SYS_ACCEPT4 is not supported but so does
* a bad flags argument. Try to distinguish between the two cases.
*/
if (r == -1)
if (errno == EINVAL)
if ((flags & ~(UV__SOCK_CLOEXEC|UV__SOCK_NONBLOCK)) == 0)
errno = ENOSYS;
return r;
#elif __NR_accept4 #elif __NR_accept4
return syscall(__NR_accept4, fd, addr, addrlen, flags); return syscall(__NR_accept4, fd, addr, addrlen, flags);
#else #else

Loading…
Cancel
Save