diff options
author | cjihrig <cjihrig@gmail.com> | 2016-10-24 22:13:07 -0400 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2016-10-26 09:42:41 -0400 |
commit | 63243bcb330408d511b3945c53719425d8b7abb8 (patch) | |
tree | f24252040adcc8c1a1dda22965fec39ac8df72de /deps/uv/src/win/util.c | |
parent | 2d472a36c1d5e565fe375185f273402f84bed528 (diff) | |
download | android-node-v8-63243bcb330408d511b3945c53719425d8b7abb8.tar.gz android-node-v8-63243bcb330408d511b3945c53719425d8b7abb8.tar.bz2 android-node-v8-63243bcb330408d511b3945c53719425d8b7abb8.zip |
deps: upgrade libuv to 1.10.0
Fixes: https://github.com/nodejs/node/issues/4351
Fixes: https://github.com/nodejs/node/issues/6763
Refs: https://github.com/nodejs/node/pull/8280
PR-URL: https://github.com/nodejs/node/pull/9267
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'deps/uv/src/win/util.c')
-rw-r--r-- | deps/uv/src/win/util.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/deps/uv/src/win/util.c b/deps/uv/src/win/util.c index 4cebad3908..050058afaa 100644 --- a/deps/uv/src/win/util.c +++ b/deps/uv/src/win/util.c @@ -54,6 +54,10 @@ /* The number of nanoseconds in one second. */ #define UV__NANOSEC 1000000000 +/* Max user name length, from iphlpapi.h */ +#ifndef UNLEN +# define UNLEN 256 +#endif /* Cached copy of the process title, plus a mutex guarding it. */ static char *process_title; @@ -416,6 +420,11 @@ static int uv__get_process_title() { int uv_get_process_title(char* buffer, size_t size) { + size_t len; + + if (buffer == NULL || size == 0) + return UV_EINVAL; + uv__once_init(); EnterCriticalSection(&process_title_lock); @@ -429,7 +438,14 @@ int uv_get_process_title(char* buffer, size_t size) { } assert(process_title); - strncpy(buffer, process_title, size); + len = strlen(process_title) + 1; + + if (size < len) { + LeaveCriticalSection(&process_title_lock); + return UV_ENOBUFS; + } + + memcpy(buffer, process_title, len); LeaveCriticalSection(&process_title_lock); return 0; @@ -1062,6 +1078,7 @@ int uv_getrusage(uv_rusage_t *uv_rusage) { FILETIME createTime, exitTime, kernelTime, userTime; SYSTEMTIME kernelSystemTime, userSystemTime; PROCESS_MEMORY_COUNTERS memCounters; + IO_COUNTERS ioCounters; int ret; ret = GetProcessTimes(GetCurrentProcess(), &createTime, &exitTime, &kernelTime, &userTime); @@ -1086,6 +1103,11 @@ int uv_getrusage(uv_rusage_t *uv_rusage) { return uv_translate_sys_error(GetLastError()); } + ret = GetProcessIoCounters(GetCurrentProcess(), &ioCounters); + if (ret == 0) { + return uv_translate_sys_error(GetLastError()); + } + memset(uv_rusage, 0, sizeof(*uv_rusage)); uv_rusage->ru_utime.tv_sec = userSystemTime.wHour * 3600 + @@ -1101,6 +1123,9 @@ int uv_getrusage(uv_rusage_t *uv_rusage) { uv_rusage->ru_majflt = (uint64_t) memCounters.PageFaultCount; uv_rusage->ru_maxrss = (uint64_t) memCounters.PeakWorkingSetSize / 1024; + uv_rusage->ru_oublock = (uint64_t) ioCounters.WriteOperationCount; + uv_rusage->ru_inblock = (uint64_t) ioCounters.ReadOperationCount; + return 0; } |