Take e_comp_wl->xkb.keymap_mutex when accessing the keymap 85/305085/1 accepted/tizen/unified/20240131.064103 accepted/tizen/unified/20240131.064202 accepted/tizen/unified/20240131.064255 accepted/tizen/unified/toolchain/20240311.065723 accepted/tizen/unified/x/20240205.063702
authorArtur Świgoń <a.swigon@samsung.com>
Fri, 26 Jan 2024 09:01:19 +0000 (10:01 +0100)
committerArtur Świgoń <a.swigon@samsung.com>
Fri, 26 Jan 2024 09:01:22 +0000 (10:01 +0100)
A survey of Enlightenment code shows that it is always done there.

Change-Id: I6b8792f8b5b49a9135ae6b50b10adf3ff7ed4e62

src/e_mod_utils.c

index 06f288857c306881d82a5768941b404eecba19d0..7fab7eaef8def93c7358365c76c06ce670498efc 100644 (file)
@@ -91,9 +91,11 @@ _find_keycode(struct xkb_keymap *keymap, xkb_keycode_t key, void *data)
 int _get_keycode_from_string(const char *key)
 {
    xkb_keysym_t keysym = xkb_keysym_from_name(key, XKB_KEYSYM_NO_FLAGS);
-   struct xkb_keymap *keymap = e_comp_wl->xkb.keymap;
    keycode_map_entry pair = {keysym, 0};
-   xkb_keymap_key_for_each(keymap, _find_keycode, &pair);
+
+   g_mutex_lock(&e_comp_wl->xkb.keymap_mutex);
+   xkb_keymap_key_for_each(e_comp_wl->xkb.keymap, _find_keycode, &pair);
+   g_mutex_unlock(&e_comp_wl->xkb.keymap_mutex);
 
    return pair.keycode;
 }