Travis CI was generating a lot of false positives (or rather, false negatives - tests that fail due to the environment they run in) and it's been in a continuous error state for days now. Remove it, we'll set up something ourselves.
Don't export _POSIX_C_SOURCE to dependents. On the BSDs (and the BSD-ish, like OS X), it hides SysV and BSD definitions. The exception is Linux: _POSIX_C_SOURCE=200112 unlocks some of the newer pthreads features like spinlocks and barriers, so keep exporting it on that platform.
A wrong multicast membership should return EINVAL.
Just like uv_tcp_connect() it should return an EINVAL when the handle is of an invalid type or when the network address is faulty.
The fallback added in 9d4a16e uses the /proc filesystem to emulate utimensat(). Translate error codes that indicate no procfs is mounted to ENOSYS. Letting those error codes through unchecked will only confuse callers.
The utimensat() syscall was added in 2.6.22. Add a fallback mode for older kernels that uses utimes("/proc/self/fd/<fd>"). Fixes #687.
Use the typedefs from stdint.h to avoid build breakage on systems where __u64 and friends are hidden when --std=c89 is in effect. Fixes #685.
Delete the event loop after the test to stop valgrind from complaining about memory leaks.
This changes the prototype of uv_run() from: int uv_run(uv_loop_t* loop); To: int uv_run(uv_loop_t* loop, uv_run_mode mode); Where `mode` is UV_RUN_DEFAULT, UV_RUN_ONCE or UV_RUN_NOWAIT. Fixes #683.
It makes the assumption that if you try to write to a localhost socket often enough, eventually its send queue will fill up - which doesn't happen if the machine it's running on is fast enough.
On i386, it does not need packing; it's 12 bytes packed or unpacked. On ARM, it's actively harmful: the struct is 12 bytes when packed and 16 bytes when unpacked.
Setting the target_arch without setting the host_arch as well was effectively broken.
This reverts commit 98bcddc. It's making a lot of tests in the node.js test suite fail.
* abort() if close() fails * set fd to -1 after close() to prevent double close bugs
Bug introduced in 47f496a. It turns out the file descriptors of the stdin pipe don't have to be swapped around.
Omit the fcntl() syscall when the O_NONBLOCK or FD_CLOEXEC is already set/clear because it's a no-op in that case.
uv_guess_handle is currently squelching both fifo and all sockets on to the UV_NAMED_PIPE type. Rather than treating all sockets as UV_NAMED_PIPE, use getsockopt() and getsockaddr() to determine if the socket is an AF_UNIX stream (in which case return UV_NAMED_PIPE), or an AF_INET stream (in which case return UV_TCP), or an AF_INET datagram socket (in which case return UV_UDP). Additionally, currently all other file descriptor types are squelched to the UV_FILE type. Instead, only file descriptors that are marked as regular files are treated as UV_FILE. All other types (such as directories, character and block devices) are now treated as UV_UNKNOWN_HANDLE.
Don't use features.h, it's only available on GNU/glibc systems.
Same as edd1007 but this time for the tests.
Said test doesn't need its own close callback, it can piggyback on the common close callback.
Make functions and variables that are local to the compilation unit static. Remove what turns out to be unused.
Replace `void f()` with `void f(void)`; the former means "a function that takes any number of arguments, including none" while the latter is what is actually intended: a function taking no arguments. The first form also isn't strictly conforming ANSI/ISO C.
uv_resident_set_memory() used a global buffer to read data into, which is a decidedly unsafe thing to do in a multi-threaded environment.
`#if FOO` (where FOO is undefined) is a legal construct in C89 and C99 but gcc, clang and sparse complain loudly about it at higher warning levels. Squelch those warnings. Makes the code more consistent as well.