Skip to content

Commit ef32f5d

Browse files
committed
loop: cbk: remove event even on error
1 parent 6bde12d commit ef32f5d

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

src/loop.zig

Lines changed: 15 additions & 12 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);
@@ -200,7 +203,7 @@ pub const SingleThreaded = struct {
200203
const old_events_nb = self.addEvent();
201204
self.io.cancel(*ContextCancel, ctx, cancelCallback, completion, comp_cancel);
202205
if (builtin.is_test) {
203-
report("cancel timeout {d}", .{old_events_nb + 1});
206+
report("cancel {d}", .{old_events_nb + 1});
204207
}
205208
}
206209

0 commit comments

Comments
 (0)