Processing events for concurrent tasks in a virtual machine
First Claim
1. A method of processing platform-specific events by a virtual machine that operates on a first platform, wherein said virtual machine concurrently supports a first task and a second task, said method comprising:
- simultaneously receiving, by the virtual machine, a plurality of platform-specific events which are associated with the first platform, wherein each said platform-specific event is an external event initiated externally to said virtual machine;
concurrently selecting, for each said platform-specific event, a selected task that defines which of said first and second tasks should process said platform-specific events;
simultaneously manipulating each said platform-specific event received by modifying a data structure of each said platform-specific event to comply with a data structure format supported by said selected task, thereby representing each said platform-specific event in a form that is accessible by said selected task;
assigning a platform-specific event-repository to said selected task, wherein said platform-specific repository provides event storage prior to processing by said selected task;
providing a platform-specific event-handler for said selected task;
using a platform-specific event-dispatcher, placing said platform-specific event in said platform-specific event-repository and invoking said platform-specific event-handler to initiate processing of said platform-specific event said selected task; and
processing each said platform-specific event by said selected task.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for processing native events associated with tasks that are concurrently supported in a virtual machine are disclosed. The techniques allow the user of a virtual machine to concurrently perform tasks even if these tasks require processing of platform-specific (or native) events (e.g., platform-specific input). A smart event-dispatcher is used to dispatch native events to multiple tasks that are concurrently supported by the virtual machine. The smart event-dispatcher can determine which one of a plurality of concurrent tasks should receive the native event for processing. The determination can be made based on a variety of different criteria. In mobile devices, the foreground task is typically the only task that is displayed for the user of mobile devices at any given time. Thus, dispatching events to the foreground task is especially useful for a virtual machine that support a mobile device.
-
Citations
13 Claims
-
1. A method of processing platform-specific events by a virtual machine that operates on a first platform, wherein said virtual machine concurrently supports a first task and a second task, said method comprising:
-
simultaneously receiving, by the virtual machine, a plurality of platform-specific events which are associated with the first platform, wherein each said platform-specific event is an external event initiated externally to said virtual machine; concurrently selecting, for each said platform-specific event, a selected task that defines which of said first and second tasks should process said platform-specific events; simultaneously manipulating each said platform-specific event received by modifying a data structure of each said platform-specific event to comply with a data structure format supported by said selected task, thereby representing each said platform-specific event in a form that is accessible by said selected task; assigning a platform-specific event-repository to said selected task, wherein said platform-specific repository provides event storage prior to processing by said selected task; providing a platform-specific event-handler for said selected task; using a platform-specific event-dispatcher, placing said platform-specific event in said platform-specific event-repository and invoking said platform-specific event-handler to initiate processing of said platform-specific event said selected task; and processing each said platform-specific event by said selected task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system implementing a virtual machine for processing platform-specific events associated with a first platform, wherein said system concurrently supports first and second tasks, said system comprising:
-
one or more processors; first and second tasks concurrently operating on said virtual machine; and a platform-specific event dispatcher that operates to; simultaneously receive a plurality of platform-specific events associated with said first platform, wherein each said platform-specific event is an external event initiated externally to said virtual machine; concurrently select, for each said platform-specific event, a selected task that defines which of said first and second tasks should receive said platform specific events, wherein said virtual machine simultaneously modifies a data structure of said platform-specific event to be compliant with a data structure format supported by said selected task, thereby representing platform-specific events in a form that is accessible by said selected task; a platform-specific event-repository for said selected task, wherein said platform-specific repository provides event storage prior to processing by said selected task; and a platform-specific event-handler for said selected task, wherein said platform-specific event-dispatcher operates to place said platform-specific event in said platform-specific event-repository and invoke said platform-specific event-handler to initiate processing of said platform-specific event. - View Dependent Claims (11)
-
-
12. A computer readable storage medium including a computer program for processing platform-specific events by a virtual machine that operates on a first platform, wherein said virtual machine concurrently supports first and second tasks, said computer readable medium comprising:
-
computer program code for simultaneously receiving a plurality of platform-specific events which are associated with the first platform, wherein each said platform-specific event is an external event initiated externally to said virtual machine; computer program code which concurrently selects, for each said platform-specific event, a selected task that defines which of said first and second tasks should receive said platform-specific events; computer program code that manipulates each said platform-specific event received by modifying its data structure to be compliant with a data structure format supported by said selected task, thereby representing each said platform-specific events in a form that is accessible by said selected task; computer program code that assigns a platform-specific event-handler and a platform-specific event-repository to said selected task, wherein said platform-specific repository provides event storage prior to processing by said selected task; computer program code that places said platform-specific events in said platform-specific event-repository and invokes said platform-specific event-handler to initiate processing of said platform-specific event; and computer program code for processing each of said platform-specific events by the respective selected task. - View Dependent Claims (13)
-
Specification