aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_lock_flags.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-10-01 20:37:38 +0200
committerSverker Eriksson <[email protected]>2018-10-03 19:00:53 +0200
commitb0fea529419514d9b173b84aae0f188f2e38c931 (patch)
treed7767e86e6a4380115e320f0fe59b14b0eb40c78 /erts/emulator/beam/erl_lock_flags.h
parent3ed92c67b957df55762ab837a7e3d9c8d562083b (diff)
downloadotp-b0fea529419514d9b173b84aae0f188f2e38c931.tar.gz
otp-b0fea529419514d9b173b84aae0f188f2e38c931.tar.bz2
otp-b0fea529419514d9b173b84aae0f188f2e38c931.zip
erts: Add Erlang term order to lock checker
Diffstat (limited to 'erts/emulator/beam/erl_lock_flags.h')
-rw-r--r--erts/emulator/beam/erl_lock_flags.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_lock_flags.h b/erts/emulator/beam/erl_lock_flags.h
index d711f69456..2db133b598 100644
--- a/erts/emulator/beam/erl_lock_flags.h
+++ b/erts/emulator/beam/erl_lock_flags.h
@@ -28,15 +28,17 @@
/* Property/category are bitfields to simplify their use in masks. */
#define ERTS_LOCK_FLAGS_MASK_CATEGORY (0xFFC0)
-#define ERTS_LOCK_FLAGS_MASK_PROPERTY (0x0030)
+#define ERTS_LOCK_FLAGS_MASK_PROPERTY (0x0038)
/* Type is a plain number. */
-#define ERTS_LOCK_FLAGS_MASK_TYPE (0x000F)
+#define ERTS_LOCK_FLAGS_MASK_TYPE (0x0007)
#define ERTS_LOCK_FLAGS_TYPE_SPINLOCK (1)
#define ERTS_LOCK_FLAGS_TYPE_MUTEX (2)
#define ERTS_LOCK_FLAGS_TYPE_PROCLOCK (3)
+/* Lock checker use real term order instead of raw word compare */
+#define ERTS_LOCK_FLAGS_PROPERTY_TERM_ORDER (1 << 3)
/* "Static" guarantees that the lock will never be destroyed once created. */
#define ERTS_LOCK_FLAGS_PROPERTY_STATIC (1 << 4)
#define ERTS_LOCK_FLAGS_PROPERTY_READ_WRITE (1 << 5)