static void print_lock2(char *prefix, Sint16 id, Wterm extra, Uint16 flags, char *suffix) { char *lname = (0 <= id && id < ERTS_LOCK_ORDER_SIZE ? erts_lock_order[id].name : "unknown"); if (is_not_immed(extra)) erts_fprintf(stderr, "%s'%s:%p%s'%s%s", prefix, lname, _unchecked_boxed_val(extra), lock_type(flags), rw_op_str(flags), suffix); else erts_fprintf(stderr, "%s'%s:%T%s'%s%s", prefix, lname, extra, lock_type(flags), rw_op_str(flags), suffix); }
void erts_lc_check_no_locked_of_type(Uint16 flags) { erts_lc_locked_locks_t *l_lcks = get_my_locked_locks(); if (l_lcks) { erts_lc_locked_lock_t *l_lck = l_lcks->locked.first; for (l_lck = l_lcks->locked.first; l_lck; l_lck = l_lck->next) { if (l_lck->flags & flags) { erts_fprintf(stderr, "Locked lock of type %s found which isn't " "allowed here!\n", lock_type(l_lck->flags)); print_curr_locks(l_lcks); lc_abort(); } } } }
static void raw_print_lock(char *prefix, Sint16 id, Wterm extra, Uint16 flags, char* file, unsigned int line, char *suffix) { char *lname = (0 <= id && id < ERTS_LOCK_ORDER_SIZE ? erts_lock_order[id].name : "unknown"); erts_fprintf(stderr,"%s'%s:",prefix,lname); if (is_not_immed(extra)) erts_fprintf(stderr,"%p",_unchecked_boxed_val(extra)); else erts_fprintf(stderr,"%T",extra); erts_fprintf(stderr,"%s",lock_type(flags)); if (file) erts_fprintf(stderr,"(%s:%d)",file,line); erts_fprintf(stderr,"'%s%s",rw_op_str(flags),suffix); }
lock_type LogToNull::lock_scope() const { return simstd::move(lock_type(simstd::defer_lock)); }