nvda
749fb3dd - Prevent race condition between initializing session tracking state and receiving session change notification (#14300)

Commit
3 years ago
Prevent race condition between initializing session tracking state and receiving session change notification (#14300) Summary of the issue: A race condition exists between initializing session tracking state and handling a session change notification. The lock state is initialized before registering for session tracking. That means if the session state changes between initializing and registration, a session change notification may be dropped. Description of user facing changes None Description of development approach NVDA is set to initialize the state after registration. If NVDA initializes the state after registration, a session change notification may be received while NVDA is initializing the state. A lock is used to prevent these events from being handled simultaneously. Initialization happening before receiving a notification is expected. If a notification is received without lock state initialization, the new state from the notification will be set, then initialization will override the lock state.
Author
Parents
Loading