Method for inverting program control flow
First Claim
1. A method of application program execution within a computer system comprising an operating system providing an interface to external events, the operating system being essentially unmodifiable by the programmer of the application program;
- the application program having at least one high-level language application program module which is modifiable by the programmer of the application program;
the operating system controlling the computer system most of the time and only intermittently dispatching control to the high-level language application program module, whereby the execution of the application program module is not sequential in a physical sense;
the method comprising the following steps under control of the high-level language application program module;
creating a thread for execution;
detecting a need for an asynchronous operation;
in response to a detected need, suspending the thread'"'"'s execution;
detecting completion of the asynchronous operation;
in response to a detected completion of the asynchronous operation, resuming the thread'"'"'s execution.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of application program (AP) execution within a computer system (S) comprising an operating system (OS) providing an interface to external events. The operating system is essentially unmodifiable by the application programmer. The application program (AP) has at least one high-level language application program module which is modifiable by the programmer. The operating system (OS) controls the computer most of the time and only intermittently dispatches control to the high-level module, whereby the execution of the application program module is not sequential. The method comprises creating (3-2) a thread for execution; detecting (3-4) a need for an asynchronous operation; in response to a detected need, suspending (3-6) the thread'"'"'s execution; detecting (3-8) completion of the asynchronous operation; and in response to a detected completion of the asynchronous operation, resuming (3-10) the thread'"'"'s execution. The invention creates an illusion of sequential execution within the high-level language application program module. The method is preferably implemented by an application interpreter (Al) such as a modified programming language.
49 Citations
20 Claims
-
1. A method of application program execution within a computer system comprising an operating system providing an interface to external events, the operating system being essentially unmodifiable by the programmer of the application program;
-
the application program having at least one high-level language application program module which is modifiable by the programmer of the application program;
the operating system controlling the computer system most of the time and only intermittently dispatching control to the high-level language application program module, whereby the execution of the application program module is not sequential in a physical sense;
the method comprising the following steps under control of the high-level language application program module;
creating a thread for execution;
detecting a need for an asynchronous operation;
in response to a detected need, suspending the thread'"'"'s execution;
detecting completion of the asynchronous operation;
in response to a detected completion of the asynchronous operation, resuming the thread'"'"'s execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 18)
-
-
10. A method for implementing a modal dialog comprised in a session managed by a client-server application written in a high-level programming language, the method comprising the following steps to be carried out by the server:
-
creating an executable thread for the session comprising the modal dialog;
in response to an opening request from the client to open the modal dialog, outputting a page of the modal dialog to the client;
in connection with outputting the page to the client, suspending the thread'"'"'s execution;
in response to a closing request from the client to close the modal dialog, resuming the thread'"'"'s execution. - View Dependent Claims (19)
-
-
11. A method for testing hardware and/or software modules having at least one asynchronous interface with asynchronous function calls, the method comprising:
-
using a high-level language test application for performing a test operation, the test operation comprising creating an executable thread for an asynchronous function call;
converting the asynchronous function call to a synchronous function call by;
(a) suspending the execution of the thread when the test operation is started; and
(b) resuming the execution of the thread when the test operation is completed. - View Dependent Claims (13, 14, 20)
-
-
12. A high-level programming language for programming high-level application program modules, the language comprising:
-
a first instruction, instruction set or library function for creating an executable thread of a high-level application program module;
a second instruction, instruction set or library function for suspending the execution of the thread when the program module is waiting for an external event; and
a third instruction, instruction set or library function for resuming the execution of the thread when the external event occurs.
-
-
15. A computer system for application program execution, the computer system comprising an operating system providing an interface to external events, the operating system being essentially unmodifiable by the programmer of the application program;
-
the application program having at least one high-level language application program module which is modifiable by the programmer of the application program;
the operating system being operable to control the computer system most of the time and only intermittently dispatch control to the high-level language application program module, whereby the execution of the high-level language application program module is not sequential in a physical sense;
the computer system further comprising;
a first software routine for creating a thread for execution;
a second software routine for detecting a need for an asynchronous operation;
a third software routine for suspending the thread'"'"'s execution in response to a detected need;
a fourth software routine for detecting completion of the asynchronous operation;
a fifth software routine for resuming the thread'"'"'s execution in response to a detected completion of the asynchronous operation.
-
-
16. A computer server system for implementing a modal dialog as a part of a session in a client-server application written in a high-level programming language, the computer server system comprising:
-
a first software routine for creating a thread for execution;
a second software routine for detecting a need for an asynchronous operation;
a third software routine for suspending the thread'"'"'s execution in response to a detected need;
a fourth software routine for detecting completion of the asynchronous operation;
a fifth software routine for resuming the thread'"'"'s execution in response to a detected completion of the asynchronous operation.
-
-
17. A computerized testing apparatus for testing hardware and/or software modules having at least one asynchronous interface with asynchronous function calls, the testing apparatus comprising:
-
a high-level language test program for performing test operations;
an instruction, instruction set or function library for converting asynchronous function calls to synchronous function calls by;
(a) suspending the execution of the thread when the test operation is started; and
(b) resuming the execution of the thread when the test operation is completed.
-
Specification