sqInt ioExit(void)

#define browserPluginReturnIfNeeded()

Parms: NONE
return: NONE, fake return of zero
From: Interpreter
Why:
To decide if we should exit the interpreter loop

Responsibility:
In the early days of running the virtual machine as a browser plugin it was designed that the VM would run on the same Thread as the browser, this required us to run the interpreter loop for a number of milliseconds then terminate control back to the caller so the browser's main thread could gain control. The browserPluginReturnIfNeeded would then get control every couple of milliseconds on a unconditional jump backwards, or on a message send, or on calling a primitive.

MacIntosh
os-9/OSXCarbon
#define browserPluginReturnIfNeeded() if (plugInTimeToReturn()) {ReturnFromInterpret();}
Where plugInTimeToReturn is returns true if gQuitNowRightNow is true.
#define ReturnFromInterpret() return

Cocoa:
See iPhone

iPhone
#define browserPluginReturnIfNeeded() if (plugInTimeToReturn()) {ReturnFromInterpret();}
Where plugInTimeToReturn is returns true if gQuitNowRightNow is true.
#define ReturnFromInterpret() return

For testing of memory leakage we enable this so that we can terminate the interpreter loop on 'quit'

Unix

Windows

BUGS

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki