# US 2014/0157286 A1 · System and method for thread protected testing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157286 A1
- Document ID: US20140157286A1
- Status: Published application
- Kind: A1
- Application number: 14/175,404
- Filed: 2014-02-07
- Published: 2014-06-05
- Earliest claimed: 2011-04-15
- Assignees: Siemens Product Lifecycle Management Software Inc.
- Applicants: Siemens Product Lifecycle Management Software Inc.
- Inventors: Mark Brazier
- Web page: https://patentgrep.com/patent/US20140157286A1

## CPC

- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 2209/484: Precedence
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method performed by a system including one or more data processing systems. The method includes receiving a plurality of requesting process calls for a target process from one or more requesting processes and identifying dependencies between the requesting process calls. The method includes sending the requesting process call to the target process for execution on multiple threads, including sending thread execution parameters corresponding to the requesting process calls, the thread execution parameters indicating that the requesting process calls can be executed by the target process simultaneously and independently, that the requesting process calls must be processed in a specific order based on the dependencies, or that the requesting process calls are to be executed with shared process objects. The method includes receiving results from the target process. The method includes sending the results to the requesting processes corresponding to the respective requesting process calls.

## Claims

### Claim 1

A method performed by a system including one or more data processing systems, comprising:
receiving a plurality of requesting process calls for a target process from one or more requesting processes;
identifying dependencies between the requesting process calls;
sending the requesting process calls to the target process for execution on multiple threads, based on the identified dependencies, including sending thread execution parameters corresponding to the requesting process calls, the thread execution parameters indicating that (i) the requesting process calls can be executed by the target process simultaneously and independently, (ii) that the requesting process calls must be processed in a specific order based on the dependencies, or (iii) that the requesting process calls are to be executed with shared process objects;
receiving results, corresponding to the requesting process calls, from the target process; and
sending the results to the one or more requesting processes corresponding to the respective requesting process calls.

### Claim 2 (depends on 1)

The method of claim 1, wherein the one or more requesting processes are non-thread-safe process and the target process is a thread-safe process.

### Claim 3 (depends on 1)

The method of claim 1, wherein identifying dependencies includes identifying when the results of a first requesting process call is needed for proper execution of a second requesting process call.

### Claim 4 (depends on 1)

The method of claim 1, wherein identifying dependencies includes identifying when a first requesting process call and a second requesting process call should share process objects.

### Claim 5 (depends on 1)

The method of claim 1, wherein target process executes the requesting process calls according to the thread execution parameters.

### Claim 6 (depends on 1)

The method of claim 1, wherein the one or more requesting processes act as a test harness for the target process.

### Claim 7 (depends on 6)

The method of claim 6, wherein the results are test results from the target process.

### Claim 8

At least one data processing system, each data processing system comprising:
a memory; and
one or more processors, each processor having one or more cores, the at least one data processing system configured to execute the steps of:
receiving a plurality of requesting process calls for a target process from one or more requesting processes;
identifying dependencies between the requesting process calls;
sending the requesting process call to the target process for execution on multiple threads, based on the identified dependencies, including sending thread execution parameters corresponding to the requesting process calls, the thread execution parameters indicating that (i) the requesting process calls can be executed by the target process simultaneously and independently, (ii) that the requesting process calls must be processed in a specific order based on the dependencies, or (iii) that the requesting process calls are to be executed with shared process objects;
receiving results, corresponding to the requesting process calls, from the target process; and
sending the results to the one or more requesting processes corresponding to the respective requesting process calls.

### Claim 9 (depends on 8)

The at least one data processing system of claim 8, wherein the one or more requesting processes are non-thread-safe process and the target process is a thread-safe process.

### Claim 10 (depends on 8)

The at least one data processing system of claim 8, wherein identifying dependencies includes identifying when the results of a first requesting process call is needed for proper execution of a second requesting process call.

### Claim 11 (depends on 8)

The at least one data processing system of claim 8, wherein identifying dependencies includes identifying when a first requesting process call and a second requesting process call should share process objects.

### Claim 12 (depends on 8)

The at least one data processing system of claim 8, wherein target process executes the requesting process calls according to the thread execution parameters.

### Claim 13 (depends on 8)

The at least one data processing system of claim 8, wherein the one or more requesting processes act as a test harness for the target process.

### Claim 14 (depends on 13)

The at least one data processing system of claim 13, wherein the results are test results from the target process.

### Claim 15

A non-transitory computer readable medium encoded with executable instructions that, when executed, cause one or more data processing systems to perform the steps of:
receiving a plurality of requesting process calls for a target process from one or more requesting processes;
identifying dependencies between the requesting process calls;
sending the requesting process call to the target process for execution on multiple threads, based on the identified dependencies, including sending thread execution parameters corresponding to the requesting process calls, the thread execution parameters indicating that (i) the requesting process calls can be executed by the target process simultaneously and independently, (ii) that the requesting process calls must be processed in a specific order based on the dependencies, or (iii) that the requesting process calls are to be executed with shared process objects;
receiving results, corresponding to the requesting process calls, from the target process; and
sending the results to the one or more requesting processes corresponding to the respective requesting process calls.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more requesting processes are non-thread-safe process and the target process is a thread-safe process.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein identifying dependencies includes identifying when the results of a first requesting process call is needed for proper execution of a second requesting process call.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein identifying dependencies includes identifying when a first requesting process call and a second requesting process call should share process objects.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein target process executes the requesting process calls according to the thread execution parameters.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more requesting processes act as a test harness for the target process and the results are test results from the target process.
