IP Library Granted Patent US 8,701,096
Granted Patent B2
US 8,701,096 · App. 12/579,532 · Granted Apr 15, 2014

In-order execution in an asynchronous programming environment

Inventors: Anantharaman Palacode Narayana Iyer (Bangalore, IN); Arijit Chatterjee (Bangalore, IN); Jyoti Kishnani (Bangalore, IN)
Assignee: Adobe Systems Incorporated
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 8,701,096
App. No.
12/579,532
Granted
Apr 15, 2014
Kind
B2
Abstract

A computer implemented method includes receiving an ordered sequence of programming language statements, identifying a first statement and one or more second statements that are configured to be executed after the first statement, in which the first statement is configured to initiate an asynchronous task that executes asynchronously with respect to the one or more second statements, and configuring the one or more second statements to execute upon completion of the asynchronous task.

Claims (38)

1. A method performed by a data processing apparatus, the method comprising:

receiving, by the data processing apparatus and using a compiler, an ordered sequence of programming language statements;

identifying, with the compiler, a first statement and one or more second statements that are configured to be executed after the first statement, the first statement configured to initiate an asynchronous task that executes asynchronously with respect to the one or more second statements; and

configuring, with the compiler, the one or more second statements to execute synchronously upon completion of the asynchronous task, the configuring including modifying a location of the one or more second statements to partition the one or more second statements into one or more blocks containing statements that execute synchronously.

2. The method of claim 1 , wherein identifying a first statement comprises identifying a function that calls an asynchronous task.

3. The method of claim 1 , wherein configuring the one or more second statements comprises configuring a result handler associated with the asynchronous task to invoke the one or more second statements upon completion of the asynchronous task.

4. The method of claim 1 , further comprising moving the one or more second statements into a function, and

wherein configuring the one or more second statements comprises configuring a result handler associated with the asynchronous task to invoke the function upon completion of the asynchronous task.

5. The method of claim 1 , wherein the first statement and the one or more second statements are in a first function, the method further comprising:

identifying a third statement and one or more fourth statements that are configured to be executed after the third statement in the ordered sequence of programming language statements, wherein the third statement is configured to invoke the first function; and

configuring the one or more fourth statements to execute upon completion of the first function.

6. The method of claim 5 , wherein configuring the one or more fourth statements comprises configuring an event handler associated with the first function to invoke the one or more fourth statements upon completion of the function.

7. A computer storage medium encoded with a computer program, the program comprising instructions that when executed by a data processing apparatus cause the data processing apparatus to perform operations comprising:

receiving, by the data processing apparatus and using a compiler, an ordered sequence of programming language statements;

identifying, with the compiler, a first statement and one or more second statements that are configured to be executed after the first statement, the first statement configured to initiate an asynchronous task that executes asynchronously with respect to the one or more second statements; and

configuring, with the compiler, the one or more second statements to execute synchronously upon completion of the asynchronous task, the configuring including modifying a location of the one or more second statements to partition the one or more second statements into one or more blocks containing statements that execute synchronously.

8. The computer storage medium of claim 7 , wherein identifying a first statement comprises identifying a function that calls an asynchronous task.

9. The computer storage medium of claim 7 , wherein configuring the one or more second statements comprises configuring a result handler associated with the asynchronous task to invoke the one or more second statements upon completion of the asynchronous task.

10. The computer storage medium of claim 7 , wherein the operations further comprise moving the one or more second statements into a function, and

wherein configuring the one or more second statements comprises configuring a result handler associated with the asynchronous task to invoke the function upon completion of the asynchronous task.

11. The computer storage medium of claim 7 , wherein the first statement and the one or more second statements are in a first function, and the operations further comprise:

identifying a third statement and one or more fourth statements that are configured to be executed after the third statement in the ordered sequence of programming language statements, wherein the third statement is configured to invoke the first function; and

configuring the one or more fourth statements to execute upon completion of the first function.

12. The computer storage medium of claim 11 , wherein configuring the one or more fourth statements comprises configuring an event handler associated with the first function to invoke the one or more fourth statements upon completion of the first function.

13. A system comprising:

a computer-readable medium including instructions for a compiler; and

a computing device including one or more processors configured to interact with the medium and execute the compiler to perform operations comprising:

receiving by the compiler an ordered sequence of programming language statements;

identifying a first statement and one or more second statements that are configured to be executed after the first statement, the first statement is configured to initiate an asynchronous task that executes asynchronously with respect to the one or more second statements; and

configuring the one or more second statements to execute synchronously upon completion of the asynchronous task, the configuring including modifying a location of the one or more second statements to partition the one or more second statements into one or more blocks containing statements that execute synchronously.

14. The system of claim 13 , wherein identifying a first statement comprises identifying a function that calls an asynchronous task.

15. The system of claim 13 , wherein configuring the one or more second statements comprises configuring a result handler associated with the asynchronous task to invoke the one or more second statements upon completion of the asynchronous task.

16. The system of claim 13 wherein the operations further comprise moving the one or more second statements into a function, and

wherein configuring the one or more second statements comprises configuring a result handler associated with the asynchronous task to invoke the function upon completion of the asynchronous task.

17. The system of claim 13 , wherein the first statement and the one or more second statements are in a first function, and wherein the operations further comprise:

identifying a third statement and one or more fourth statements that are configured to be executed after the third statement in the ordered sequence of programming language statements, wherein the third statement is configured to invoke the first function; and

configuring the one or more fourth statements to execute upon completion of the first function.

18. The system of claim 17 , wherein configuring the one or more fourth statements comprises configuring an event handler associated with the first function to invoke the one or more fourth statements upon completion of the first function.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2009
From: IYER, ANANTHARAMAN PALACODE NARAYANA; CHATTERJEE, ARIJIT; KISHNANI, JYOTI
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 023377/0369 →
Continuity (1)
Related Publication 20130167126A1 · Jun 27, 2013