diff options
author | John Högberg <[email protected]> | 2017-07-06 12:33:39 +0200 |
---|---|---|
committer | John Högberg <[email protected]> | 2017-07-06 12:33:39 +0200 |
commit | 1f1d20a352d16741c272f14dd7d09632eef13509 (patch) | |
tree | eab34f895460ee92a3ebcbf6e2d813e1384e65e0 /erts/emulator/beam/erl_lock_flags.c | |
parent | af4f81a46d895c8a217c104c874a912073728374 (diff) | |
parent | 5a537ae41c2295f7f19e4e01fe90acc7585f5b30 (diff) | |
download | otp-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.c | 46 |
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"; + } +} |