diff --git a/ostd/signal.hh b/ostd/signal.hh index 6e2e51a..d54a52d 100644 --- a/ostd/signal.hh +++ b/ostd/signal.hh @@ -31,9 +31,15 @@ struct Event { } ~Event() { + clear(); + } + + void clear() { for (Size i = 0; i < p_nfuncs; ++i) p_funcs[i].~Function(); delete[] (byte *)p_funcs; + p_funcs = nullptr; + p_nfuncs = 0; } template