Merge branch 'v0.10'
Conflicts: ChangeLog config-unix.mk src/version.c
This commit is contained in:
commit
961202d1c2
1
AUTHORS
1
AUTHORS
@ -85,3 +85,4 @@ Kristian Evensen <kristian.evensen@gmail.com>
|
|||||||
Nils Maier <maierman@web.de>
|
Nils Maier <maierman@web.de>
|
||||||
Nicholas Vavilov <vvnicholas@gmail.com>
|
Nicholas Vavilov <vvnicholas@gmail.com>
|
||||||
Miroslav Bajtoš <miro.bajtos@gmail.com>
|
Miroslav Bajtoš <miro.bajtos@gmail.com>
|
||||||
|
Elliot Saba <staticfloat@gmail.com>
|
||||||
|
|||||||
36
ChangeLog
36
ChangeLog
@ -1,3 +1,39 @@
|
|||||||
|
2013.05.15, Version 0.10.7 (Stable), 028baaf0846b686a81e992cb2f2f5a9b8e841fcf
|
||||||
|
|
||||||
|
Changes since version 0.10.6:
|
||||||
|
|
||||||
|
* windows: kill child processes when the parent dies (Bert Belder)
|
||||||
|
|
||||||
|
|
||||||
|
2013.05.15, Version 0.10.6 (Stable), 11e6613e6260d95c8cf11bf89a2759c24649319a
|
||||||
|
|
||||||
|
Changes since version 0.10.5:
|
||||||
|
|
||||||
|
* stream: fix osx select hack (Fedor Indutny)
|
||||||
|
|
||||||
|
* stream: fix small nit in select hack, add test (Fedor Indutny)
|
||||||
|
|
||||||
|
* build: link with libkvm on openbsd (Ben Noordhuis)
|
||||||
|
|
||||||
|
* stream: use harder sync restrictions for osx-hack (Fedor Indutny)
|
||||||
|
|
||||||
|
* unix: fix EMFILE error handling (Ben Noordhuis)
|
||||||
|
|
||||||
|
* darwin: fix unnecessary include headers (Daisuke Murase)
|
||||||
|
|
||||||
|
* darwin: rename darwin-getproctitle.m (Ben Noordhuis)
|
||||||
|
|
||||||
|
* build: convert predefined $PLATFORM to lower case (Elliot Saba)
|
||||||
|
|
||||||
|
* build: set soname in shared library (Ben Noordhuis)
|
||||||
|
|
||||||
|
* build: make `make test` link against .a again (Ben Noordhuis)
|
||||||
|
|
||||||
|
* darwin: fix ios build, don't require ApplicationServices (Ben Noordhuis)
|
||||||
|
|
||||||
|
* build: only set soname on shared object builds (Timothy J. Fontaine)
|
||||||
|
|
||||||
|
|
||||||
2013.05.11, Version 0.11.2 (Unstable), 3fba0bf65f091b91a9760530c05c6339c658d88b
|
2013.05.11, Version 0.11.2 (Unstable), 3fba0bf65f091b91a9760530c05c6339c658d88b
|
||||||
|
|
||||||
Changes since version 0.11.1:
|
Changes since version 0.11.1:
|
||||||
|
|||||||
@ -144,7 +144,7 @@ endif
|
|||||||
|
|
||||||
ifneq (darwin,$(PLATFORM))
|
ifneq (darwin,$(PLATFORM))
|
||||||
# Must correspond with UV_VERSION_MAJOR and UV_VERSION_MINOR in src/version.c
|
# Must correspond with UV_VERSION_MAJOR and UV_VERSION_MINOR in src/version.c
|
||||||
LDFLAGS += -Wl,-soname,libuv.so.0.11
|
SO_LDFLAGS = -Wl,-soname,libuv.so.0.11
|
||||||
endif
|
endif
|
||||||
|
|
||||||
RUNNER_LDFLAGS += $(LDFLAGS)
|
RUNNER_LDFLAGS += $(LDFLAGS)
|
||||||
@ -154,7 +154,7 @@ libuv.a: $(OBJS)
|
|||||||
|
|
||||||
libuv.$(SOEXT): override CFLAGS += -fPIC
|
libuv.$(SOEXT): override CFLAGS += -fPIC
|
||||||
libuv.$(SOEXT): $(OBJS:%.o=%.pic.o)
|
libuv.$(SOEXT): $(OBJS:%.o=%.pic.o)
|
||||||
$(CC) -shared -o $@ $^ $(LDFLAGS)
|
$(CC) -shared -o $@ $^ $(LDFLAGS) $(SO_LDFLAGS)
|
||||||
|
|
||||||
include/uv-private/uv-unix.h: \
|
include/uv-private/uv-unix.h: \
|
||||||
include/uv-private/uv-bsd.h \
|
include/uv-private/uv-bsd.h \
|
||||||
|
|||||||
@ -18,11 +18,18 @@
|
|||||||
* IN THE SOFTWARE.
|
* IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <TargetConditionals.h>
|
||||||
|
|
||||||
|
#if !TARGET_OS_IPHONE
|
||||||
# include <CoreFoundation/CoreFoundation.h>
|
# include <CoreFoundation/CoreFoundation.h>
|
||||||
# include <ApplicationServices/ApplicationServices.h>
|
# include <ApplicationServices/ApplicationServices.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int uv__set_process_title(const char* title) {
|
int uv__set_process_title(const char* title) {
|
||||||
|
#if TARGET_OS_IPHONE
|
||||||
|
return -1;
|
||||||
|
#else
|
||||||
typedef CFTypeRef (*LSGetCurrentApplicationASNType)(void);
|
typedef CFTypeRef (*LSGetCurrentApplicationASNType)(void);
|
||||||
typedef OSStatus (*LSSetApplicationInformationItemType)(int,
|
typedef OSStatus (*LSSetApplicationInformationItemType)(int,
|
||||||
CFTypeRef,
|
CFTypeRef,
|
||||||
@ -76,4 +83,5 @@ int uv__set_process_title(const char* title) {
|
|||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
return (err == noErr) ? 0 : -1;
|
return (err == noErr) ? 0 : -1;
|
||||||
|
#endif /* !TARGET_OS_IPHONE */
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,6 +45,36 @@ typedef struct env_var {
|
|||||||
#define E_V(str) { str "=", L##str, sizeof(str), 0, 0 }
|
#define E_V(str) { str "=", L##str, sizeof(str), 0, 0 }
|
||||||
|
|
||||||
|
|
||||||
|
static HANDLE uv_global_job_handle_;
|
||||||
|
static uv_once_t uv_global_job_handle_init_guard_ = UV_ONCE_INIT;
|
||||||
|
|
||||||
|
|
||||||
|
static void uv__init_global_job_handle() {
|
||||||
|
SECURITY_ATTRIBUTES attr;
|
||||||
|
JOBOBJECT_EXTENDED_LIMIT_INFORMATION info;
|
||||||
|
|
||||||
|
memset(&attr, 0, sizeof attr);
|
||||||
|
attr.bInheritHandle = FALSE;
|
||||||
|
|
||||||
|
memset(&info, 0, sizeof info);
|
||||||
|
info.BasicLimitInformation.LimitFlags =
|
||||||
|
JOB_OBJECT_LIMIT_BREAKAWAY_OK |
|
||||||
|
JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK |
|
||||||
|
JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION |
|
||||||
|
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
|
||||||
|
|
||||||
|
uv_global_job_handle_ = CreateJobObjectW(&attr, NULL);
|
||||||
|
if (uv_global_job_handle_ == NULL)
|
||||||
|
uv_fatal_error(GetLastError(), "CreateJobObjectW");
|
||||||
|
|
||||||
|
if (!SetInformationJobObject(uv_global_job_handle_,
|
||||||
|
JobObjectExtendedLimitInformation,
|
||||||
|
&info,
|
||||||
|
sizeof info))
|
||||||
|
uv_fatal_error(GetLastError(), "SetInformationJobObject");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static uv_err_t uv_utf8_to_utf16_alloc(const char* s, WCHAR** ws_ptr) {
|
static uv_err_t uv_utf8_to_utf16_alloc(const char* s, WCHAR** ws_ptr) {
|
||||||
int ws_len, r;
|
int ws_len, r;
|
||||||
WCHAR* ws;
|
WCHAR* ws;
|
||||||
@ -908,6 +938,15 @@ int uv_spawn(uv_loop_t* loop, uv_process_t* process,
|
|||||||
process->process_handle = info.hProcess;
|
process->process_handle = info.hProcess;
|
||||||
process->pid = info.dwProcessId;
|
process->pid = info.dwProcessId;
|
||||||
|
|
||||||
|
/* If the process isn't spawned as detached, assign to the global job */
|
||||||
|
/* object so windows will kill it when the parent process dies. */
|
||||||
|
if (!(options.flags & UV_PROCESS_DETACHED)) {
|
||||||
|
uv_once(&uv_global_job_handle_init_guard_, uv__init_global_job_handle);
|
||||||
|
|
||||||
|
if (!AssignProcessToJobObject(uv_global_job_handle_, info.hProcess))
|
||||||
|
uv_fatal_error(GetLastError(), "AssignProcessToJobObject");
|
||||||
|
}
|
||||||
|
|
||||||
/* Set IPC pid to all IPC pipes. */
|
/* Set IPC pid to all IPC pipes. */
|
||||||
for (i = 0; i < options.stdio_count; i++) {
|
for (i = 0; i < options.stdio_count; i++) {
|
||||||
const uv_stdio_container_t* fdopt = &options.stdio[i];
|
const uv_stdio_container_t* fdopt = &options.stdio[i];
|
||||||
|
|||||||
@ -42,8 +42,12 @@ static void set_title(const char* title) {
|
|||||||
|
|
||||||
|
|
||||||
TEST_IMPL(process_title) {
|
TEST_IMPL(process_title) {
|
||||||
|
#if defined(__sun)
|
||||||
|
RETURN_SKIP("uv_(get|set)_process_title is not implemented.");
|
||||||
|
#else
|
||||||
/* Check for format string vulnerabilities. */
|
/* Check for format string vulnerabilities. */
|
||||||
set_title("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s");
|
set_title("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s");
|
||||||
set_title("new title");
|
set_title("new title");
|
||||||
return 0;
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user