IP Library Granted Patent US 10,599,470
Granted Patent B1
US 10,599,470 · App. 16/149,404 · Granted Mar 24, 2020

Cloud thread synchronization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,599,470
App. No.
16/149,404
Granted
Mar 24, 2020
Kind
B1
Abstract

A system, apparatus, and method for thread synchronization is provided. In one embodiment, a network system receives a signal from a first computing machine, and determines whether one or more processes are waiting for the signal. The network system also transmits the signal to one of the one or more processes on the first computing machine or a second computing machine to execute a thread of the process.

Claims (37)

1. A method, comprising:

receiving, at a local machine service of a first computing machine comprising at least one processor, at least one memory, a bus for internal communication on the first computing machine and at least one communication device for external communication of the first computing machine to an external network system, a signal from a thread of a first process executing on the first computing machine that has sole access to data on a network service of the external network system;

transmitting, from the local machine service of the first computing machine, the signal to the at least one of the second processes where there are one or more waiting second processes executing on the first computing machine;

transmitting, from the local machine service of the first computing machine, the signal to the external network system when the local machine service determines no processes are waiting locally on the first computing machine;

determining whether one or more processes are waiting for the signal to access the data on a second computing machine; and

transmitting, from the external network system, the signal to one of the one or more processes waiting on the second computing machine to execute a thread of the one or more processes using the data on the network service.

2. The method of claim 1 , comprising determining, by the local machine service of the first computing machine, whether the one or more second processes executing on the first computing machine are waiting for the signal.

3. The method of claim 1 , wherein the determining, by the local machine service, whether the one or more second processes are waiting for the signal to access the data is based on an instantiation of a cloud synchronization object registered with the local machine service.

4. The method of claim 1 , wherein the signal received from the thread of the first process executing on the first computing machine has sole access to the data.

5. The method of claim 1 , further comprising receiving, at a local machine service of the second computing machine, the signal to execute a process waiting on the second computing machine.

6. The method of claim 5 , further comprising transmitting, from the local machine service of the second computing machine, the signal to the process waiting on the second computing machine.

7. A non-transitory computer readable medium comprising instructions that, when read by a processor, cause the processor to perform:

receiving, at a local machine service of a first computing machine comprising at least one processor, at least one memory, a bus for internal communication on the first computing machine and at least one communication device for external communication of the first computing machine to an external network system, a signal from a thread of a first process executing on the first computing machine that has sole access to data on a network service of the external network system;

transmitting, from the local machine service of the first computing machine, the signal to the at least one of the second processes where there are one or more waiting second processes executing on the first computing machine;

transmitting, from the local machine service of the first computing machine, the signal to the external network system when the local machine service determines no processes are waiting locally on the first computing machine;

determining whether one or more processes are waiting for the signal to access the data on a second computing machine; and

transmitting, from the external network system, the signal to one of the one or more processes waiting on the second computing machine to execute a thread of the one or more processes using the data on the network service.

8. The non-transitory computer readable medium of claim 7 comprising instructions that, when read by the processor, cause the processor to perform determining, by the local machine service of the first computing machine, whether the one or more second processes executing on the first computing machine are waiting for the signal.

9. The non-transitory computer readable medium of claim 8 , wherein the determining, by the local machine service, whether the one or more second processes are waiting for the signal to access the data is based on an instantiation of a cloud synchronization object registered with the local machine service.

10. The non-transitory computer readable medium of claim 8 , wherein the signal received from the thread of the first process executing on the first computing machine has sole access to the data.

11. The non-transitory computer readable medium of claim 8 comprising instructions that, when read by the processor, cause the processor to perform receiving, at a local machine service of the second computing machine, the signal to execute a process waiting on the second computing machine.

12. The non-transitory computer readable medium of claim 11 comprising instructions that, when read by the processor, cause the processor to perform transmitting, from the local machine service of the second computing machine, the signal to the process waiting on the second computing machine.

13. A system, comprising:

a first computer machine and an external network system;

the first computer machine comprising at least one processor, at least one memory, at least one bus for internal communication on the first computing machine and at least one communication device for external communication of the first computing machine to the external network system, the at least one processor configured to:

receive, at a local machine service of a first computing machine, a signal from a thread of a first process executing on the first computing machine that has sole access to data on a network service of the external network system;

transmit, from the local machine service of the first computing machine, the signal to the at least one of the second processes where there are one or more waiting second processes executing on the first computing machine;

transmit, from the local machine service of the first computing machine, the signal to the external network system when the local machine service determines no processes are waiting locally on the first computing machine;

determine whether one or more processes are waiting for the signal to access the data on a second computing machine; and

the external network system comprising at least one processor and configured to transmit the signal to one of the processes waiting on the second computing machine to execute a thread of the one of the processes using the data on the network service.

14. The system of claim 13 , wherein the local machine service of the first computing machine determines whether the one or more second processes executing on the first computing machine are waiting for the signal.

15. The system of claim 13 , wherein the determining, by the local machine service, whether the one or more second processes are waiting for the signal to access the data is based on an instantiation of a cloud synchronization object registered with the local machine service.

16. The system of claim 13 , wherein the signal received from the thread of the first process that executes on the first computing machine has sole access to the data.

17. The system of claim 13 , comprising a local machine service of the second computing machine configured to receive the signal to execute a process on the second computing machine.

18. The system of claim 17 , wherein the local machine service of the second computing machine is further configured to transmit the signal to the process waiting on the second computing machine.

19. The system of claim 13 , wherein an instantiation for each of the one or more processes is registered.

20. The system of claim 19 , wherein the instantiation for each of the one or more processes is registered with the local machine service.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE PATENT ASSIGNMENT AGREEMENT DATED NOVEMBER 30, 2021 PREVIOUSLY RECORDED AT REEL: 058426 FRAME: 0791. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2022
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058736/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2021
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058426/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2020
From: YAEGER, MARC TODD
To: OPEN INVENTION NETWORK LLC
Reel/Frame 053569/0858 →