fix: use thespian.store/restore_error in tui.deinit
This prevents errors in tui.deinit, for example DEADSEND messages from timers, from over writing the final exit message from the tui actor.
This commit is contained in:
parent
c348aa9656
commit
629e6048aa
1 changed files with 6 additions and 1 deletions
|
@ -200,7 +200,12 @@ fn receive(self: *Self, from: tp.pid_ref, m: tp.message) tp.result {
|
|||
defer frame.deinit();
|
||||
instance_ = self;
|
||||
defer instance_ = null;
|
||||
errdefer self.deinit();
|
||||
errdefer {
|
||||
var err: tp.ScopedError = .{};
|
||||
tp.store_error(&err);
|
||||
defer tp.restore_error(&err);
|
||||
self.deinit();
|
||||
}
|
||||
|
||||
self.receive_safe(from, m) catch |e| {
|
||||
if (std.mem.eql(u8, "normal", tp.error_text()))
|
||||
|
|
Loading…
Add table
Reference in a new issue