This commit is contained in:
Andreas Gal 2014-07-28 10:47:02 -07:00
Родитель 83d2652a55
Коммит 11394b361b
1 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -193,14 +193,19 @@ Context.prototype.wait = function(obj) {
}
Context.prototype.notify = function(obj) {
if (!obj.waiters || !obj.waiters.length)
if (obj.waiters && obj.waiters.length) {
if (!obj.ready)
obj.ready = [];
obj.ready.push(obj.waiters.pop());
}
if (!obj.ready || !obj.ready.length)
return;
var waiter = obj.waiters.pop();
window.setZeroTimeout(VM.execute.bind(null, waiter));
var ctx = obj.ready.pop();
window.setZeroTimeout(VM.execute.bind(null, ctx));
}
Context.prototype.notifyAll = function(obj) {
while (obj.waiters && obj.waiters.length)
while ((obj.waiters && obj.waiters.length) || (obj.ready && obj.ready.length))
this.notify(obj);
}