Dedicated Input Thread for Asynchronous Multi-Contact Event Reconciliation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The reconciliation of synchronous input handling with asynchronous protocols in operating systems is challenging, particularly when multiple contacts are involved, requiring preservation of input ordering and distinct actions for each contact, leading to the creation of multiple input streams that need to be processed independently.
Innovation Solution
A dedicated input thread buffers all input events and requests the application to identify actions for each contact, potentially discarding events to maintain order, and then reconsolidates streams into a single ordered stream to ensure chronological processing by the operating system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If input events are handled synchronously in a dedicated thread, then visual elements can be manipulated quickly and user experience is smooth, but the asynchronous protocol requires reconciliation of multiple input streams which increases system complexity
Solution Approach 1:
The patent segments the input stream into multiple contact-specific streams, allowing each contact to be processed independently while maintaining overall synchronization. Each contact's input events are separated into their own stream that can be handled asynchronously without interfering with other contacts.
Solution Approach 2:
The patent introduces a mediator mechanism that reconciles the synchronous input handling with the asynchronous protocol. This mediator manages the transformation between synchronous input events and asynchronous processed streams, handling the complexity of protocol reconciliation automatically.
2Adaptability or versatility
If multiple contacts are handled with independent input streams, then each contact can be processed separately, but input ordering must be preserved which requires additional buffering and reordering mechanisms
Solution Approach 1:
The patent divides the input stream into separate contact-specific streams, enabling independent processing of each contact while maintaining ordering within each stream. This segmentation allows multiple contacts to be handled simultaneously without interfering with each other's input ordering.
Solution Approach 2:
The patent implements preliminary buffering of input events before processing, ensuring that events are captured and stored in the correct order before being distributed to different contact streams. This preliminary action preserves input ordering without requiring complex reordering operations during processing.
3Reliability
If input events are buffered until processing is complete, then input ordering is preserved, but processing time is delayed which may affect responsiveness
Solution Approach 1:
The patent performs preliminary buffering of input events to preserve ordering, but then immediately processes them in batches rather than waiting for complete processing. This preliminary action ensures ordering accuracy while minimizing overall processing delay through efficient batch handling.
Solution Approach 2:
The patent maintains continuous processing of input events through overlapping buffer filling and event processing operations. While events are being buffered, processing continues on previously buffered events, ensuring that the system remains responsive without sacrificing input ordering accuracy.
Data Source
AI summary
An operating system has a stack of input events (an input stack) that provides input events from various input devices to applications. A dedicated thread or other entity is provided to handle input events that are related to pixel manipulation on the display, so as to provide a highly responsive display. The thread includes a buffer, and manages the buffer so as to ensure that messages a received by an application or other entity in chronological order.


