You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This just come to my mind today. Right now, fcitx5 -r uses dbus name "replace" machanism to restart fcitx5.
This actually causes a race condition that:
when this happens, dbus module is already loaded, which means quite a few data are already loaded, including already loaded addon config etc.
The old instance of fcitx will only trigger "save" at this point. Which means there would be quite a few addon that may not save data already when new fcitx is initializing.
right now actually we may be blocked by XIM (xim commonly need retry upon start up) and accidentally avoided this race in real life, but we should try to do better here by introducing some mechanism for waiting the old instance to quit gracefully.
The text was updated successfully, but these errors were encountered:
At least "Restart" in tray menu won't lose data because it will call "save" before the actual restart, so that part is good.
Ideally, if fcitx5 -r is requested, new fcitx should send a request Exit method call if there is an existing owner. After that, request the name to avoid race on data loading.
This just come to my mind today. Right now, fcitx5 -r uses dbus name "replace" machanism to restart fcitx5.
This actually causes a race condition that:
right now actually we may be blocked by XIM (xim commonly need retry upon start up) and accidentally avoided this race in real life, but we should try to do better here by introducing some mechanism for waiting the old instance to quit gracefully.
The text was updated successfully, but these errors were encountered: