> The root cause of this issue is that the server-client information exchange
> does not enforce the required order. It would be preferable if we fixed the
> out of order issue in the server, rather than implementing what is essentially
> a workaround in the client. Is this feasible?
The MP here seemed like the easy fix to get the follow up parts working.
> Also, is there the possibility of this race occurring after we already have
> some input devices (i.e. a devices is added after startup and the state event
> reaches the client before the input-config event)? If so, the workaround is
> not enough, since it is only applied when devices.empty() == true.
Sounds right..
I will try to change the way the input device changes are handled in the server... currently through an observer in the main thread .. vs the input thread..
> The root cause of this issue is that the server-client information exchange
> does not enforce the required order. It would be preferable if we fixed the
> out of order issue in the server, rather than implementing what is essentially
> a workaround in the client. Is this feasible?
The MP here seemed like the easy fix to get the follow up parts working.
> Also, is there the possibility of this race occurring after we already have
> some input devices (i.e. a devices is added after startup and the state event
> reaches the client before the input-config event)? If so, the workaround is
> not enough, since it is only applied when devices.empty() == true.
Sounds right..
I will try to change the way the input device changes are handled in the server... currently through an observer in the main thread .. vs the input thread..