Skip to content
This repository has been archived by the owner on Oct 16, 2021. It is now read-only.

Commit

Permalink
Merge branch 'v0.10.34-release' of github.com:/andrewlow/node into v0…
Browse files Browse the repository at this point in the history
….10.34-release-ppc
  • Loading branch information
richardlau committed Dec 22, 2014
2 parents 48e7691 + 52795f8 commit b73a7f8
Show file tree
Hide file tree
Showing 271 changed files with 78,602 additions and 4,387 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ node_g
.benchmark_reports
/.project
/.cproject
icu_config.gypi

/out

Expand Down
9 changes: 8 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,13 @@ Kevin Simper <kevin.simper@gmail.com>
Jackson Tian <shyvo1987@gmail.com>
Tristan Berger <tristan.berger@gmail.com>
Mathias Schreck <schreck.mathias@googlemail.com>
Calvin Metcalf <cmetcalf@appgeo.com>
Matthew Fitzsimmons <matt@fitzage.com>
Swaagie <info@martijnswaagman.nl>
Emmanuel Odeke <emmanuel.odeke@cmgcanada.ca>
Eric Mill <eric@konklone.com>
Brendan Ashworth <squirrelslikeacorns@gmail.com>
Alejandro Oviedo <alejandro.oviedo.g@gmail.com>
pkcs <pkcs@gmx.com>
Saúl Ibarra Corretgé <saghul@gmail.com>
silverwind <silv3rwind@gmail.com>
Steven R. Loomis <srl@icu-project.org>
27 changes: 25 additions & 2 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,27 @@
2014.10.20, Version 0.10.33 (Stable)
2014.12.17, Version 0.10.34 (Stable)

* uv: update to v0.10.30

* zlib: upgrade to v1.2.8

* child_process: check execFile args is an array (Sam Roberts)

* child_process: check fork args is an array (Sam Roberts)

* crypto: update root certificates (Ben Noordhuis)

* domains: fix issues with abort on uncaught (Julien Gilli)

* timers: Avoid linear scan in _unrefActive. (Julien Gilli)

* timers: fix unref() memory leak (Trevor Norris)

* v8: add api for aborting on uncaught exception (Julien Gilli)

* debugger: fix when using "use strict" (Julien Gilli)


2014.10.20, Version 0.10.33 (Stable), 8d045a30e95602b443eb259a5021d33feb4df079

* openssl: Update to 1.0.1j (Addressing multiple CVEs)

Expand Down Expand Up @@ -71,7 +94,7 @@

* deps: backport 4ed5fde4f from v8 upstream (Fedor Indutny)

* deps: cherry-pick eca441b2 from OpenSSL (Fedor Indutny)
*

* lib: remove and restructure calls to isNaN() (cjihrig)

Expand Down
9 changes: 4 additions & 5 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,9 @@ maintained libraries. The externally maintained libraries used by Node are:
- Zlib at deps/zlib. zlib's license follows:
"""
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.4, March 14th, 2010
version 1.2.8, April 28th, 2013

Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
Expand All @@ -314,9 +314,8 @@ maintained libraries. The externally maintained libraries used by Node are:
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

Jean-loup Gailly
Mark Adler

Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu
*/
"""

Expand Down
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -744,4 +744,4 @@ else:

gyp_args += args

subprocess.call(gyp_args)
sys.exit(subprocess.call(gyp_args))
1 change: 1 addition & 0 deletions deps/uv/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,4 @@ Paul Tan <pyokagan@gmail.com>
Javier Hernández <jhernandez@emergya.com>
Tonis Tiigi <tonistiigi@gmail.com>
Michael Hudson-Doyle <michael.hudson@linaro.org>
Helge Deller <deller@gmx.de>
21 changes: 20 additions & 1 deletion deps/uv/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,23 @@
2014.10.21, Version 0.10.29 (Stable)
2014.12.10, Version 0.10.30 (Stable)

Changes since version 0.10.29:

* linux: fix sigmask size arg in epoll_pwait() call (Ben Noordhuis)

* linux: handle O_NONBLOCK != SOCK_NONBLOCK case (Helge Deller)

* doc: update project links (Ben Noordhuis)

* windows: fix compilation of tests (Marc Schlaich)

* unix: add flag for blocking SIGPROF during poll (Ben Noordhuis)

* unix, windows: add uv_loop_configure() function (Ben Noordhuis)

* win: keep a reference to AFD_POLL_INFO in cancel poll (Marc Schlaich)


2014.10.21, Version 0.10.29 (Stable), 2d728542d3790183417f8f122a110693cd85db14

Changes since version 0.10.28:

Expand Down
4 changes: 2 additions & 2 deletions deps/uv/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ http://nodejs.org/

## Documentation

* [include/uv.h](https://github.com/joyent/libuv/blob/master/include/uv.h)
* [include/uv.h](https://github.com/libuv/libuv/blob/master/include/uv.h)
&mdash; API documentation in the form of detailed header comments.
* [An Introduction to libuv](http://nikhilm.github.com/uvbook/) &mdash; An
overview of libuv with tutorials.
* [LXJS 2012 talk](http://www.youtube.com/watch?v=nGn60vDSxQ4) - High-level
introductory talk about libuv.
* [Tests and benchmarks](https://github.com/joyent/libuv/tree/master/test) -
* [Tests and benchmarks](https://github.com/libuv/libuv/tree/master/test) -
API specification and usage examples.

## Build Instructions
Expand Down
5 changes: 4 additions & 1 deletion deps/uv/include/uv-private/uv-win.h
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,10 @@ RB_HEAD(uv_timer_tree_s, uv_timer_s);
/* Used in fast mode */ \
SOCKET peer_socket; \
AFD_POLL_INFO afd_poll_info_1; \
AFD_POLL_INFO afd_poll_info_2; \
union { \
AFD_POLL_INFO* afd_poll_info_ptr; \
AFD_POLL_INFO afd_poll_info; \
} afd_poll_info_2; \
/* Used in fast and slow mode. */ \
uv_req_t poll_req_1; \
uv_req_t poll_req_2; \
Expand Down
19 changes: 19 additions & 0 deletions deps/uv/include/uv.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,16 @@ typedef struct uv_work_s uv_work_t;
typedef struct uv_cpu_info_s uv_cpu_info_t;
typedef struct uv_interface_address_s uv_interface_address_t;

typedef enum {
/* Block a signal when polling for new events. The second argument to
* uv_loop_configure() is the signal number.
*
* This operation is currently only implemented for SIGPROF signals,
* to suppress unnecessary wakeups when using a sampling profiler.
* Requesting other signals will fail with UV_EINVAL.
*/
UV_LOOP_BLOCK_SIGNAL
} uv_loop_option;

typedef enum {
UV_RUN_DEFAULT = 0,
Expand Down Expand Up @@ -264,6 +274,15 @@ UV_EXTERN void uv_loop_delete(uv_loop_t*);
*/
UV_EXTERN uv_loop_t* uv_default_loop(void);

/*
* Set additional loop options. You should normally call this before the
* first call to uv_run() unless mentioned otherwise.
*
* Returns 0 on success or a UV_E* error code on failure. Be prepared to
* handle UV_ENOSYS; it means the loop option is not supported by the platform.
*/
UV_EXTERN int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...);

/*
* This function runs the event loop. It will act differently depending on the
* specified mode:
Expand Down
5 changes: 5 additions & 0 deletions deps/uv/src/unix/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,11 @@ enum {
UV_TCP_SINGLE_ACCEPT = 0x400 /* Only accept() when idle. */
};

/* loop flags */
enum {
UV_LOOP_BLOCK_SIGPROF = 1
};

/* core */
int uv__nonblock(int fd, int set);
int uv__cloexec(int fd, int set);
Expand Down
17 changes: 16 additions & 1 deletion deps/uv/src/unix/kqueue.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,11 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
unsigned int nevents;
unsigned int revents;
ngx_queue_t* q;
uv__io_t* w;
sigset_t* pset;
sigset_t set;
uint64_t base;
uint64_t diff;
uv__io_t* w;
int filter;
int fflags;
int count;
Expand Down Expand Up @@ -118,6 +120,13 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
w->events = w->pevents;
}

pset = NULL;
if (loop->flags & UV_LOOP_BLOCK_SIGPROF) {
pset = &set;
sigemptyset(pset);
sigaddset(pset, SIGPROF);
}

assert(timeout >= -1);
base = loop->time;
count = 48; /* Benchmarks suggest this gives the best throughput. */
Expand All @@ -128,13 +137,19 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
spec.tv_nsec = (timeout % 1000) * 1000000;
}

if (pset != NULL)
pthread_sigmask(SIG_BLOCK, pset, NULL);

nfds = kevent(loop->backend_fd,
events,
nevents,
events,
ARRAY_SIZE(events),
timeout == -1 ? NULL : &spec);

if (pset != NULL)
pthread_sigmask(SIG_UNBLOCK, pset, NULL);

/* Update loop->time unconditionally. It's tempting to skip the update when
* timeout == 0 (i.e. non-blocking poll) but there is no guarantee that the
* operating system didn't reschedule our process while in the syscall.
Expand Down
24 changes: 17 additions & 7 deletions deps/uv/src/unix/linux-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include <sys/prctl.h>
#include <sys/sysinfo.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <time.h>

Expand Down Expand Up @@ -130,6 +131,8 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
struct uv__epoll_event e;
ngx_queue_t* q;
uv__io_t* w;
sigset_t* pset;
sigset_t set;
uint64_t base;
uint64_t diff;
int nevents;
Expand Down Expand Up @@ -180,12 +183,25 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
w->events = w->pevents;
}

pset = NULL;
if (loop->flags & UV_LOOP_BLOCK_SIGPROF) {
pset = &set;
sigemptyset(pset);
sigaddset(pset, SIGPROF);
}

assert(timeout >= -1);
base = loop->time;
count = 48; /* Benchmarks suggest this gives the best throughput. */

for (;;) {
if (!no_epoll_wait) {
if (no_epoll_wait || pset != NULL) {
nfds = uv__epoll_pwait(loop->backend_fd,
events,
ARRAY_SIZE(events),
timeout,
pset);
} else {
nfds = uv__epoll_wait(loop->backend_fd,
events,
ARRAY_SIZE(events),
Expand All @@ -194,12 +210,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
no_epoll_wait = 1;
continue;
}
} else {
nfds = uv__epoll_pwait(loop->backend_fd,
events,
ARRAY_SIZE(events),
timeout,
NULL);
}

/* Update loop->time unconditionally. It's tempting to skip the update when
Expand Down
3 changes: 2 additions & 1 deletion deps/uv/src/unix/linux-syscalls.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "linux-syscalls.h"
#include <unistd.h>
#include <signal.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <errno.h>
Expand Down Expand Up @@ -298,7 +299,7 @@ int uv__epoll_pwait(int epfd,
nevents,
timeout,
sigmask,
sizeof(*sigmask));
_NSIG / 8);
#else
return errno = ENOSYS, -1;
#endif
Expand Down
8 changes: 6 additions & 2 deletions deps/uv/src/unix/linux-syscalls.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
#if defined(__alpha__)
# define UV__O_NONBLOCK 0x4
#elif defined(__hppa__)
# define UV__O_NONBLOCK 0x10004
# define UV__O_NONBLOCK O_NONBLOCK
#elif defined(__mips__)
# define UV__O_NONBLOCK 0x80
#elif defined(__sparc__)
Expand All @@ -59,7 +59,11 @@
#define UV__IN_NONBLOCK UV__O_NONBLOCK

#define UV__SOCK_CLOEXEC UV__O_CLOEXEC
#define UV__SOCK_NONBLOCK UV__O_NONBLOCK
#if defined(SOCK_NONBLOCK)
# define UV__SOCK_NONBLOCK SOCK_NONBLOCK
#else
# define UV__SOCK_NONBLOCK UV__O_NONBLOCK
#endif

/* epoll flags */
#define UV__EPOLL_CLOEXEC UV__O_CLOEXEC
Expand Down
12 changes: 12 additions & 0 deletions deps/uv/src/unix/loop.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,15 @@ void uv__loop_delete(uv_loop_t* loop) {
loop->watchers = NULL;
loop->nwatchers = 0;
}


int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap) {
if (option != UV_LOOP_BLOCK_SIGNAL)
return UV_ENOSYS;

if (va_arg(ap, int) != SIGPROF)
return UV_EINVAL;

loop->flags |= UV_LOOP_BLOCK_SIGPROF;
return 0;
}
Loading

0 comments on commit b73a7f8

Please sign in to comment.