sync libuv with upstream