From 4627321e2301013e3693fb95af9da09df49e72f4 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Wed, 20 Apr 2022 04:37:49 +0200 Subject: [PATCH] fix foreach_ident --- src/cs_state.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/cs_state.cc b/src/cs_state.cc index 02a8cae..b9bb8e2 100644 --- a/src/cs_state.cc +++ b/src/cs_state.cc @@ -62,8 +62,12 @@ std::size_t internal_state::get_identnum() const { void internal_state::foreach_ident(void (*f)(ident *, void *), void *data) { auto nids = get_identnum(); for (std::size_t i = 0; i < nids; ++i) { - std::lock_guard l{ident_mtx}; - f(identmap[i], data); + ident *id; + { + std::lock_guard l{ident_mtx}; + id = identmap[i]; + } + f(id, data); } }