I’m having some trouble with a Promise stored in a member variable, where the ’then’ block attached to the promise calls code that ends up clearing that variable. This then triggers a kj exception that a Promise is being destructed while it’s being processed. I understand why this is an error, but I can’t figure out how else to clean up that variable.
The situation is like: std::optional<Promise<void>> _promise; // This is a data member of my class // In a method of my class: _promise = something.then([=] { …do the work… _promise.clear(); // <— boom }); How can I make sure _promise is cleared after its handler completes? I need a specific reference to the promise — I can’t just shove it into a TaskSet — because I have code in other methods that clears _promise when it decides that it’s no longer needed. (Specifically, this is an idle timer, so when an action occurs it needs to clear the timer.) I can think of a few ways to fix this, but they feel like hacks. I get the feeling this is a situation that comes up in various circumstances — a promise whose resolution has to clear the Promise variable. Is there a more established best practice for handling it? —Jens -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/8CC19E73-C543-4689-ABA9-5D612D98C026%40mooseyard.com.