Methods for transparent management of context and state in an asynchronous callback flow

US9262156B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9262156-B2
Application numberUS-201414178288-A
CountryUS
Kind codeB2
Filing dateFeb 12, 2014
Priority dateFeb 12, 2014
Publication dateFeb 16, 2016
Grant dateFeb 16, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Computerized methods for providing one or more memory values present in memory during execution of a procedure to be automatically available to an asynchronous callback executed later. The methods comprise receiving a code containing procedures, the procedures having input parameters to be executed as asynchronous callback procedures. The methods further comprise replacing the procedures in the code with wrapper procedures, where the wrapper procedures comprise instructions for storing one or more memory values, storing the asynchronous callbacks of the input parameters, replacing each of the input parameters with a wrapper callback, the wrapper callback comprising instruction for restoring the memory values and executing the asynchronous callbacks. The methods further comprise executing the original procedures. The methods further comprise executing the code with the wrapper procedures, providing the memory values present during execution of the procedure to be automatically available to the asynchronous callback executed later.

First claim

Opening claim text (preview).

What is claimed is: 1. A computerized method for providing at least one memory value present in computer memory during execution of a program procedure to be automatically available to an asynchronous callback procedure executed later, comprising: receiving a code containing at least one program procedure, said at least one program procedure having at least one input parameter to be executed as an asynchronous callback procedure; replacing said at least one program procedure in said code with at least one wrapper procedure, where each of said at least one wrapper procedure comprises instructions for: storing at least one memory value available to said asynchronous callback procedure prior to execution of said asynchronous callback procedure; storing said asynchronous callback procedure of said at least one input parameter; replacing each of said at least one input parameter with a wrapper callback procedure, said wrapper callback procedure comprising instructions for restoring said at least one memory value and then executing said asynchronous callback procedure; and executing said at least one program procedure; executing said code with said at least one wrapper procedure, providing said at least one memory value present during execution of said program procedure to be automatically available to said asynchronous callback procedure executed later, wherein execution of said asynchronous callback procedure initiates execution of at least one additional callback procedure, and each of said at least one additional callback procedure is performed by execution of corresponding said wrapper callback procedure which restores said at least one memory value prior to execution of said at least one additional callback procedure. 2. The method of claim 1 , wherein said at least one wrapper procedure and said wrapper callback procedure are made available by at least one computerized interface of the types from a list of a source code file, a binary machine instruction file, a header file, a driver file, a library file, a compiled library file, and a remote procedure call. 3. The method of claim 1 , wherein said at least one memory value comprises any data value from the list of local variable values, global variable values, local variable address values, global variable address values, state machine status data values, time data values, date data values, user identification data values, user input data values, server-side computer data values, client-side computer data values, server-side program computer data values, client-side program data values, billing information data values, processor thread information data values, counter data values, procedure timing data values, exception handling data values, system monitoring data values, and resource management data values. 4. The method of claim 1 , wherein said at least one program procedure, said at least one asynchronous callback procedure, said at least one wrapper procedure, and said wrapper callback procedure are developed in a programming environment coded according to the programming syntax of at least one from a list of programming languages including Javascript, C#, .NET, Ruby, D, Python, Perl, Java, Groovy, and Scala. 5. The method of claim 4 , wherein said programming environment is at least one from a list of Node.js, Tornado, Twisted, Perl Object Environment, libevent, Vert.x, Akka, EventMachine, and vibe.d. 6. The method of claim 1 , wherein said at least one wrapper procedure additionally stores a mapping between said at least one asynchronous callback procedure and said wrapper callback procedure for use in a manipulation of at least one callback flow, and a manipulating wrapper procedure uses said mapping to manipulate said at least one callback flow. 7. The method of claim 6 , wherein said manipulation comprises any from the list of priority assignment, and cancelling. 8. The method of claim 1 , wherein the term procedure may refer to any from the list of a subroutine, a function, and a routine, as used in procedural programming languages. 9. A computer program product, comprising a non-transitory computer usable memory having a computer readable program code embodied therein, said computer readable program code containing processor instructions to implement a method for providing at least one memory value present in computer memory during execution of a program procedure to be automatically available to an asynchronous callback procedure executed later, comprising instructions for: receiving a code containing at least one program procedure, said at least one program procedure having at least one input parameter to be executed as an asynchronous callback procedure; replacing said at least one program procedure in said code with at least one wrapper procedure, where each of said at least one wrapper procedure comprises instructions for: storing at least one memory value available to said asynchronous callback procedure prior to execution of said asynchronous callback procedure; storing said asynchronous callback procedure of said at least one input parameter; replacing each of said at least one input parameter with a wrapper callback procedure, said wrapper callback procedure comprising instructions for restoring said at least one memory value and then executing said asynchronous callback procedure; and executing said at least one program procedure; executing said code with said at least one wrapper procedure, providing said at least one memory value present during execution of said program procedure to be automatically available to said asynchronous callback procedure executed later, wherein execution of said asynchronous callback procedure initiates execution of at least one additional callback procedure, and each of said at least one additional callback procedure is executed by corresponding said wrapper callback procedure which restores said at least one memory value prior to execution of said at least one additional callback procedure. 10. The computer program product of claim 9 , wherein said at least one wrapper procedure and said wrapper callback procedure are made available by at least one computerized interface of the types from a list of a source code file, a binary machine instruction file, a header file, a driver file, a library file, a compiled library file, and a remote procedure call. 11. The computer program product of claim 9 , wherein said at least one memory value comprises any data value from the list of local variable values, global variable values, local variable address values, global variable address values, state machine status data values, time data values, date data values, user identification data values, user input data values, server-side computer data values, client-side computer data values, server-side program computer data values, client-side program data values, billing information data values, processor thread information data values, counter data values, procedure timing data values, exception handling data values, system monitoring data values, and resource management data values. 12. The computer program product of claim 9 , wherein said at least one program procedure, said at least one asynchronous callback procedure, said at least one wrapper procedure, and said wrapper callback procedure are developed in a programming environment coded according to the programming syntax of at least one from a list of programming languages including Javascript, C#, .NET, Ruby, D, Python, Perl, Java, Groovy, and Scala. 13. The computer program product of claim 9 , wherein said programming environment is at least one from a list of Node.js, Tornado, Twisted, Perl Object Envir

Assignees

Inventors

Classifications

  • Creation or generation of source code · CPC title

  • Programming languages or programming paradigms · CPC title

  • G06F9/461Primary

    Saving or restoring of program or task context · CPC title

  • Interprogram communication · CPC title

  • Transformation of program code · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9262156B2 cover?
Computerized methods for providing one or more memory values present in memory during execution of a procedure to be automatically available to an asynchronous callback executed later. The methods comprise receiving a code containing procedures, the procedures having input parameters to be executed as asynchronous callback procedures. The methods further comprise replacing the procedures in the…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/461. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 16 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).