Thank you for your answer Yang,
Let me give you a more detailed explanation: what I'm doing here is a server that runs untrusted code inside a v8::Isolate to process incoming HTTP requests and returns HTTP responses. Every time a request arrives, the same JS async function is called to process it, generating the corresponding response. What happens is that, for performance reasons, I need to process multiple requests in the same v8::Isolate, this is why I'm using an async function, this way every time a new request arrives I start processing it regardless of the previous requests' processing state. However, if at some point any of the running async functions block the V8, all the other async functions stop, because the CPU gets stuck. If I simply call v8::Isolate::TerminateExecution the CPU is released and all the system works again, however, all the async functions that weren't causing the system block are destroyed because the entire v8::Isolate is destroyed. What I need to do is to "destroy" only the async function that caused the system blocking and this is why I thought about promise "stopping" or "aborting" or "canceling" or anything like this.
cheers,
Bambam