mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 16:14:10 -08:00
Speed-up context switching
This commit is contained in:
parent
84aeb20321
commit
77738b001f
|
@ -458,7 +458,13 @@ function $rt_rootInvocationAdapter(f) {
|
||||||
console.error(!hasWrappers ? prefix : "Root cause is %s at %o", e.message, e.stack);
|
console.error(!hasWrappers ? prefix : "Root cause is %s at %o", e.message, e.stack);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return f.apply(this, args);
|
f.apply(this, args);
|
||||||
|
var thread = $rt_getThread();
|
||||||
|
while (thread.postponed) {
|
||||||
|
var postponed = thread.postponed;
|
||||||
|
thread.postponed = null;
|
||||||
|
postponed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function $rt_mainWrapper(f) {
|
function $rt_mainWrapper(f) {
|
||||||
|
@ -485,16 +491,15 @@ function $rt_s(index) {
|
||||||
}
|
}
|
||||||
var $rt_continueCounter = 0;
|
var $rt_continueCounter = 0;
|
||||||
function $rt_continue(f) {
|
function $rt_continue(f) {
|
||||||
if ($rt_continueCounter++ == 10) {
|
if ($rt_continueCounter++ == 40) {
|
||||||
$rt_continueCounter = 0;
|
$rt_continueCounter = 0;
|
||||||
return function() {
|
return function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
var args = arguments;
|
var args = arguments;
|
||||||
var thread = $rt_getThread();
|
var thread = $rt_getThread();
|
||||||
setTimeout(function() {
|
thread.postponed = function() {
|
||||||
$rt_setThread(thread);
|
|
||||||
f.apply(self, args);
|
f.apply(self, args);
|
||||||
}, 0);
|
};
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return f;
|
return f;
|
||||||
|
|
|
@ -87,7 +87,7 @@ public final class AsyncProgram {
|
||||||
prime[i] = true;
|
prime[i] = true;
|
||||||
}
|
}
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (int i = 0; i < 100; ++i) {
|
for (int i = 0; i < 1000; ++i) {
|
||||||
if (prime[i]) {
|
if (prime[i]) {
|
||||||
sb.append(i).append(' ');
|
sb.append(i).append(' ');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user