static void _unlock_mem_if_possible(struct cmd_context *cmd) { log_debug_mem("Unlock: Memlock counters: locked:%d critical:%d daemon:%d suspended:%d", _mem_locked, _critical_section, _memlock_count_daemon, dm_get_suspended_counter()); if (_mem_locked && !_critical_section && !_memlock_count_daemon) { _unlock_mem(cmd); _mem_locked = 0; } }
void memlock_dec_daemon(struct cmd_context *cmd) { if (!_memlock_count_daemon) log_error(INTERNAL_ERROR "_memlock_count_daemon has dropped below 0."); --_memlock_count_daemon; log_debug_mem("memlock_count_daemon dec to %d", _memlock_count_daemon); if (!_memlock_count_daemon && _critical_section && _mem_locked) { log_error("Unlocking daemon memory in critical section."); _unlock_mem(cmd); _mem_locked = 0; } _unlock_mem_if_possible(cmd); }
static void _unlock_mem_if_possible(void) { if ((_memlock_count + _memlock_count_daemon) == 0) _unlock_mem(); }
static void _unlock_mem_if_possible(struct cmd_context *cmd) { if ((_memlock_count + _memlock_count_daemon) == 0) _unlock_mem(cmd); }