add more robust error handling for worker tasks
This commit is contained in:
parent
b5842ed4d0
commit
00d7ffec12
7 changed files with 98 additions and 69 deletions
|
|
@ -898,9 +898,22 @@
|
|||
}
|
||||
API.event.emit('slice', getMode());
|
||||
}
|
||||
// handle slicing errors
|
||||
if (error && !errored) {
|
||||
errored = true;
|
||||
setViewMode(VIEWS.ARRANGE);
|
||||
alert2(error, 5);
|
||||
API.show.progress(0);
|
||||
KIRI.client.restart();
|
||||
API.event.emit('slice.error', error);
|
||||
}
|
||||
// discard remaining errors
|
||||
if (errored) {
|
||||
return;
|
||||
}
|
||||
let alert = null;
|
||||
// on the last exit, update ui and call the callback
|
||||
if (--countdown === 0 || error || errored) {
|
||||
if (--countdown === 0) {
|
||||
if (scale === 1 && feature.work_alerts) {
|
||||
alert = API.show.alert("Rendering");
|
||||
};
|
||||
|
|
@ -923,12 +936,13 @@
|
|||
updateSliderMax(true);
|
||||
setVisibleLayer(-1, 0);
|
||||
});
|
||||
// mark slicing complete for prep/preview
|
||||
complete.slice = true;
|
||||
if (scale === 1) {
|
||||
API.show.progress(0);
|
||||
}
|
||||
// cause visuals to update
|
||||
SPACE.scene.active();
|
||||
// mark slicing complete for prep/preview
|
||||
complete.slice = true;
|
||||
API.event.emit('slice.end', getMode());
|
||||
// print stats
|
||||
segtimes.total = Date.now() - now;
|
||||
|
|
@ -937,16 +951,6 @@
|
|||
callback();
|
||||
}
|
||||
}
|
||||
// handle slicing errors
|
||||
if (error && !errored) {
|
||||
API.show.progress(0);
|
||||
API.hide.alert(alert);
|
||||
errored = true;
|
||||
setViewMode(VIEWS.ARRANGE);
|
||||
setOpacity(color.model_opacity);
|
||||
platform.deselect();
|
||||
alert2(error, 1);
|
||||
}
|
||||
}, function(update, msg) {
|
||||
if (msg && msg !== lastMsg) {
|
||||
let mark = Date.now();
|
||||
|
|
@ -1018,7 +1022,17 @@
|
|||
startTime = mark;
|
||||
}
|
||||
API.show.progress(offset + progress * scale, message);
|
||||
}, function (oldout, maxSpeed) {
|
||||
}, function (reply, maxSpeed) {
|
||||
// handle worker errors
|
||||
if (reply && reply.error) {
|
||||
alert2(reply.error, 5);
|
||||
setViewMode(VIEWS.ARRANGE);
|
||||
API.event.emit('preview.error', reply.error);
|
||||
API.show.progress(0);
|
||||
SPACE.update();
|
||||
return;
|
||||
}
|
||||
|
||||
if (lastMsg) {
|
||||
segtimes[`${segNumber++}_${lastMsg}`] = Date.now() - startTime;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue