Thread-Safe Interface for Non-Thread-Safe APIs in BMCs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current implementations of BMCs use C and C++ programming languages with non-thread-safe APIs, making it challenging to develop bug-free, multi-threaded software, especially when tasks from parallel program threads need to access the same data object.

Innovation Solution

The system generates a thread-safe interface for non-thread-safe objects using C++ lambdas, allowing multi-threaded processes to safely interact with these objects by creating a single thread for task execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If non-thread-safe APIs are used in multi-threaded programs, then programming simplicity is maintained, but thread safety and system stability deteriorate

Engineering Contradiction:
Improveprogramming simplicityVSAvoidthread safety
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces a thread-safe interface as an intermediary layer between multi-threaded code and non-thread-safe APIs. This interface acts as a mediator that receives thread-safe function calls, converts them into single-threaded execution contexts, and invokes the non-thread-safe underlying APIs safely, thus resolving the contradiction between programming simplicity and thread safety

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the system into two distinct layers: a thread-safe interface layer and a non-thread-safe API layer. By separating these concerns, the thread-safe interface can manage threading responsibilities while the underlying non-thread-safe APIs maintain their original simplicity and performance characteristics

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple threads access the same data object simultaneously, then parallel processing capability is improved, but data consistency and correctness deteriorate

Engineering Contradiction:
Improveparallel processing capabilityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The thread-safe interface serves as a mediator that receives concurrent thread requests, coordinates their execution, and ensures data consistency by preventing simultaneous access to shared data objects through the non-thread-safe APIs

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically manages thread execution by creating and destroying single-threaded execution contexts as needed. This dynamic approach allows multiple threads to access data objects concurrently while maintaining consistency through controlled single-threaded execution windows

Inventive Principle:
Principle #15Dynamics

3Reliability

If thread-safe interfaces are created for non-thread-safe objects, then system reliability is improved, but device complexity and implementation overhead increase

Engineering Contradiction:
Improvethread safetyVSAvoidimplementation overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The thread-safe interface is designed as a universal pattern that can be applied to any non-thread-safe object or API. It provides multi-functional capabilities including thread safety, error handling, and performance optimization in a single unified interface, reducing overall implementation complexity

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

Data Source

PatentUS20250138875A1Systems and methods to use non-thread safe apis in threaded programs using thread-safe interfaces
Publication Date: 2025.05.01 DELL PROD LP
  • US20250138875A1 patent drawing
  • US20250138875A1 patent drawing
  • US20250138875A1 patent drawing

AI summary

Embodiments of the present disclosure provide a system and method to provide a thread-safe environment for non-thread-safe objects used with multi-thread processes. According to one embodiment, an Information Handling System (IHS) includes at least one processor, and at least one memory having program instructions that upon execution by at least one processor, cause the IHS to create multiple objects including at least one non-thread-safe object, generate a thread-safe interface associated with the non-thread-safe object, and when a task request is received from a multi-threaded process, generate a single thread to perform a task with the non-thread-safe object. The task is associated with the task request.