Remove the wait for the ibus daemon to start
The initial implementation of Uinicode input via IBus used a startup delay of 3 seconds to wait for the daemon to be ready before connecting to it. This commit introduces a poll-wait loop which can remove the delay entirely if the daemon is up when chansrv starts the interface.
This commit is contained in:
parent
de5711637f
commit
f0069456f9
@ -220,8 +220,21 @@ xrdp_input_unicode_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Wait becasue ibus daemon may not be ready in first login. Do we have a flag to avoid busy waiting? */
|
||||
sleep(3);
|
||||
/* Wait because the ibus daemon may not be ready on first login */
|
||||
const char *addr = ibus_get_address();
|
||||
unsigned int cnt = 0;
|
||||
while (!addr && cnt < 10)
|
||||
{
|
||||
usleep(500 * 1000); // half a second
|
||||
addr = ibus_get_address();
|
||||
++cnt;
|
||||
}
|
||||
if (!addr)
|
||||
{
|
||||
LOG(LOG_LEVEL_ERROR,
|
||||
"xrdp_ibus_init: Timed out waiting for iBus daemon");
|
||||
return 1;
|
||||
}
|
||||
|
||||
LOG(LOG_LEVEL_INFO, "xrdp_ibus_init: Initializing the iBus engine");
|
||||
ibus_init();
|
||||
|
Loading…
Reference in New Issue
Block a user