Closed Bug 498851 Opened 15 years ago Closed 13 years ago

A way of interrupt handling for non-preemptive OSes.

Categories

(Tamarin Graveyard :: Virtual Machine, defect)

Other
Other
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
Future

People

(Reporter: shiva, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.31 Safari/530.5
Build Identifier: Any build

Currently VM checks the variable "interrupted" periodically, while executing the actionscript, to see if the script was stuck for a long time. We set this variable through a timer which runs in a separate thread. This works fine for a preemptive multitasking OS like Windows/Windows Mobile. But for a non-preemptive system like BREW, the only way it can set this variable is if the current thread voluntarily relinquishes the control. Hence I suggest that we have a virtual function in the AvmCore which will be called periodically. This can be enclosed with in feature macro so that performance on other OS is not affected. The class deriving from AvmCore can provide appropriate implementation to check the time stamps and interrupt if required.  It will be nice if the deriving class can also control the frequency of getting these calls in terms of the number of instructions.

Reproducible: Always

Steps to Reproduce:
1. Writing an infinite while loop in Action Script.

Actual Results:  
The BREW phone will reset itself as it works on the co-operative multithreading.

Expected Results:  
A virtual method on the AvmCore is called periodically so that a derived class can provide the necessary code to set the interrupt variable in case of non-preemptive OSes.
Do you require JIT support on this device or interpreter only?
Currently it is only running interpreter due to some limitations on the device.
Is this feature being considered?
It's not high priority for us.  If you have a specific patch to propose we'd be happy to discuss it.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Target Milestone: --- → Future
Status: NEW → RESOLVED
Closed: 13 years ago
Flags: flashplayer-qrb+
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.