Skip to content

Commit da15ee8

Browse files
Merge pull request #246 from lightpanda-io/loop-remove-evt
loop: remove event on error
2 parents 1ba5bc2 + ef32f5d commit da15ee8

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/loop.zig

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ pub const SingleThreaded = struct {
114114
) void {
115115
defer ctx.loop.freeCbk(completion, ctx);
116116

117+
const old_events_nb = ctx.loop.removeEvent();
118+
if (builtin.is_test) {
119+
report("timeout done, remaining events: {d}", .{old_events_nb - 1});
120+
}
121+
117122
// TODO: return the error to the callback
118123
result catch |err| {
119124
switch (err) {
@@ -123,11 +128,6 @@ pub const SingleThreaded = struct {
123128
return;
124129
};
125130

126-
const old_events_nb = ctx.loop.removeEvent();
127-
if (builtin.is_test) {
128-
report("timeout done, remaining events: {d}", .{old_events_nb - 1});
129-
}
130-
131131
// js callback
132132
if (ctx.js_cbk) |js_cbk| {
133133
defer js_cbk.deinit(ctx.loop.alloc);
@@ -166,17 +166,20 @@ pub const SingleThreaded = struct {
166166
) void {
167167
defer ctx.loop.freeCbk(completion, ctx);
168168

169+
const old_events_nb = ctx.loop.removeEvent();
170+
if (builtin.is_test) {
171+
report("cancel done, remaining events: {d}", .{old_events_nb - 1});
172+
}
173+
169174
// TODO: return the error to the callback
170175
result catch |err| {
171-
log.err("cancel callback: {any}", .{err});
176+
switch (err) {
177+
error.NotFound => log.debug("cancel callback: {any}", .{err}),
178+
else => log.err("cancel callback: {any}", .{err}),
179+
}
172180
return;
173181
};
174182

175-
const old_events_nb = ctx.loop.removeEvent();
176-
if (builtin.is_test) {
177-
report("timeout done, remaining events: {d}", .{old_events_nb - 1});
178-
}
179-
180183
// js callback
181184
if (ctx.js_cbk) |js_cbk| {
182185
defer js_cbk.deinit(ctx.loop.alloc);
@@ -197,7 +200,11 @@ pub const SingleThreaded = struct {
197200
.js_cbk = js_cbk,
198201
};
199202

203+
const old_events_nb = self.addEvent();
200204
self.io.cancel(*ContextCancel, ctx, cancelCallback, completion, comp_cancel);
205+
if (builtin.is_test) {
206+
report("cancel {d}", .{old_events_nb + 1});
207+
}
201208
}
202209

203210
// Yield

0 commit comments

Comments
 (0)