summaryrefslogtreecommitdiff
path: root/src/node_process_methods.cc
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2019-01-15 15:39:43 -0500
committercjihrig <cjihrig@gmail.com>2019-01-17 16:32:21 -0500
commitf6cd4e3e5976ce9edccdb13933028bdc95d43df4 (patch)
tree4eb1583e5776f3b544e4096e67b72d54cbca28ef /src/node_process_methods.cc
parent1375af204a30d1885b9e8bf79725cbd223707439 (diff)
downloadandroid-node-v8-f6cd4e3e5976ce9edccdb13933028bdc95d43df4.tar.gz
android-node-v8-f6cd4e3e5976ce9edccdb13933028bdc95d43df4.tar.bz2
android-node-v8-f6cd4e3e5976ce9edccdb13933028bdc95d43df4.zip
process: allow reading umask in workers
Refs: https://github.com/nodejs/node/issues/25448 PR-URL: https://github.com/nodejs/node/pull/25526 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Diffstat (limited to 'src/node_process_methods.cc')
-rw-r--r--src/node_process_methods.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/node_process_methods.cc b/src/node_process_methods.cc
index c9abe19b7e..51758f05f6 100644
--- a/src/node_process_methods.cc
+++ b/src/node_process_methods.cc
@@ -50,6 +50,10 @@ using v8::Uint32;
using v8::Uint32Array;
using v8::Value;
+namespace per_process {
+Mutex umask_mutex;
+} // namespace per_process
+
// Microseconds in a second, as a float, used in CPUUsage() below
#define MICROS_PER_SEC 1e6
// used in Hrtime() below
@@ -220,6 +224,7 @@ static void Umask(const FunctionCallbackInfo<Value>& args) {
CHECK_EQ(args.Length(), 1);
CHECK(args[0]->IsUndefined() || args[0]->IsUint32());
+ Mutex::ScopedLock scoped_lock(per_process::umask_mutex);
if (args[0]->IsUndefined()) {
old = umask(0);
@@ -396,9 +401,9 @@ static void InitializeProcessMethods(Local<Object> target,
target, "_stopProfilerIdleNotifier", StopProfilerIdleNotifier);
env->SetMethod(target, "abort", Abort);
env->SetMethod(target, "chdir", Chdir);
- env->SetMethod(target, "umask", Umask);
}
+ env->SetMethod(target, "umask", Umask);
env->SetMethod(target, "_rawDebug", RawDebug);
env->SetMethod(target, "memoryUsage", MemoryUsage);
env->SetMethod(target, "cpuUsage", CPUUsage);