aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_lock_flags.c
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2017-07-06 12:33:39 +0200
committerJohn Högberg <[email protected]>2017-07-06 12:33:39 +0200
commit1f1d20a352d16741c272f14dd7d09632eef13509 (patch)
treeeab34f895460ee92a3ebcbf6e2d813e1384e65e0 /erts/emulator/beam/erl_lock_flags.c
parentaf4f81a46d895c8a217c104c874a912073728374 (diff)
parent5a537ae41c2295f7f19e4e01fe90acc7585f5b30 (diff)
downloadotp-1f1d20a352d16741c272f14dd7d09632eef13509.tar.gz
otp-1f1d20a352d16741c272f14dd7d09632eef13509.tar.bz2
otp-1f1d20a352d16741c272f14dd7d09632eef13509.zip
Merge branch 'maint'
Diffstat (limited to 'erts/emulator/beam/erl_lock_flags.c')
-rw-r--r--erts/emulator/beam/erl_lock_flags.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_lock_flags.c b/erts/emulator/beam/erl_lock_flags.c
new file mode 100644
index 0000000000..ba6a7217f2
--- /dev/null
+++ b/erts/emulator/beam/erl_lock_flags.c
@@ -0,0 +1,46 @@
+/*
+ * %CopyrightBegin%
+ *
+ * Copyright Ericsson AB 2017. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * %CopyrightEnd%
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "erl_lock_flags.h"
+
+const char *erts_lock_flags_get_type_name(erts_lock_flags_t flags) {
+ switch(flags & ERTS_LOCK_FLAGS_MASK_TYPE) {
+ case ERTS_LOCK_FLAGS_TYPE_PROCLOCK:
+ return "proclock";
+ case ERTS_LOCK_FLAGS_TYPE_MUTEX:
+ if(flags & ERTS_LOCK_FLAGS_PROPERTY_READ_WRITE) {
+ return "rw_mutex";
+ }
+
+ return "mutex";
+ case ERTS_LOCK_FLAGS_TYPE_SPINLOCK:
+ if(flags & ERTS_LOCK_FLAGS_PROPERTY_READ_WRITE) {
+ return "rw_spinlock";
+ }
+
+ return "spinlock";
+ default:
+ return "garbage";
+ }
+}