Dedicated Input Thread for Asynchronous Multi-Contact Event Reconciliation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveinput handling speedVSAvoidinput stream reconciliation complexity
Core Design Contradiction:
SpeedVSDevice 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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvemulti-contact handling capabilityVSAvoidbuffering and reordering mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If input events are buffered until processing is complete, then input ordering is preserved, but processing time is delayed which may affect responsiveness

Engineering Contradiction:
Improveinput ordering accuracyVSAvoidinput processing delay
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9052796B2Asynchronous handling of an input stream dedicated to multiple targets
Publication Date: 2015.06.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9052796B2 patent drawing
  • US9052796B2 patent drawing
  • US9052796B2 patent drawing

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.