Async Task Multiplexer Prevents Cascading Cancellation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In asynchronous programming, canceling an async task can lead to unintended cascading cancellations, impacting dependent tasks and inefficient resource usage, especially when multiple entities rely on the same task, and there's a need to manage cancellations effectively to prevent premature termination of tasks.

Innovation Solution

The technology multiplexes async tasks, maintaining identity information of dependent listeners and preventing cancellation unless all listeners are independent, and wraps tasks with cancel-checking code to ensure they don't execute if canceled, allowing shared tasks to complete and notify remaining listeners.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If async tasks are shared between multiple listeners to optimize resource usage, then productivity is improved, but reliability deteriorates due to unintended cascading cancellations

Engineering Contradiction:
Improveresource usage efficiencyVSAvoidtask cancellation control
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the cancellation control mechanism by introducing a multiplexer that independently manages cancellation state for shared async tasks. The multiplexer maintains a reference count of dependent listeners and only cancels the shared task when the count reaches zero, preventing unintended cascading cancellations while allowing individual listeners to cancel their dependencies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The multiplexer acts as an intermediary between listeners and shared async tasks. It intercepts cancellation requests from listeners, evaluates whether other listeners remain dependent on the task, and selectively prevents cancellation when appropriate. This mediator layer decouples the cancellation behavior of individual listeners from the actual task execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If cancellation is allowed to propagate freely to prevent wasted work, then loss of energy is reduced, but loss of information increases due to premature task termination

Engineering Contradiction:
Improvewasted computationVSAvoidtask result availability
Core Design Contradiction:
Loss of energyVSLoss of information

Solution Approach 1:

The patent implements dynamic cancellation control where the system adapts its cancellation behavior based on the current state of listener dependencies. The multiplexer continuously monitors the number of dependent listeners and dynamically adjusts whether cancellation requests are honored or blocked, optimizing the balance between preventing wasted work and preserving task results.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback from the listener dependency graph to control cancellation behavior. The multiplexer receives feedback about which listeners depend on which tasks and uses this information to make intelligent cancellation decisions, preventing cancellation when it would cause information loss while allowing it when safe.

Inventive Principle:
Principle #23Feedback

3Productivity

If multiple threads are used to handle async tasks, then productivity is improved, but device complexity increases

Engineering Contradiction:
Improveconcurrent task handlingVSAvoidthread management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The multiplexer provides universal cancellation management that works across multiple listeners and task chains simultaneously. It implements a general-purpose reference counting mechanism that automatically handles the complexity of tracking dependencies among multiple listeners without requiring individual thread management for each listener-task relationship.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10268511B2Asynchronous task multiplexing and chaining
Publication Date: 2019.04.23 HOME BOX OFFICE INC
  • US10268511B2 patent drawing
  • US10268511B2 patent drawing
  • US10268511B2 patent drawing

AI summary

The described technology is directed towards sharing asynchronous (async) tasks between task chains, including in a way that prevents cancellation of lower-level chain entity from cancelling a shared async task. A shared async task is wrapped in multiplexer code that maintains lower-level entity identities as a set of listeners of the shared async task, and when a listener cancels, only removes that listener from the set of listeners so that the shared async task does not cancel as long as one listener remains in the set. Also described is optimization to share an async task, and wrapping tasks in cancel-checking code that prevents the task from running its work if the task is intended to be cancelled but is queued to run before the cancel request is queued to run.