Date: Mon, 17 Jul 2023 12:53:38 -0700
On Monday, 17 July 2023 09:12:06 PDT Yuri Petrenko via Std-Proposals wrote:
> As long as there is no request to cancel, the first mechanism functions
> (and while doing that, the overhead from indication is negligible).
You need to prove that the overhead is negligible. This is what I fear isn't
the case.
> If we want to get rid of the overhead in the first mechanism (to reduce
> it), we could try the following.
> At the stage of compilation, the compiler finds the points between
> statements and generates a signature. An index of such signatures for the
> procedure is formed. Having a list of signatures, the detector looks for
> the corresponding place. The thread runs until the detector finds the
> nearest signature in the call sequence, and starts unwinding the stack.
> In this case:
> The first mechanism is responsible for: execution
> The second mechanism is responsible for: execution + detection + unwinding
> The compiler is responsible for cancellation points and if the block is
> noexcept(true) the compiler just won't generate signatures.
I'm not sure this is implementable either. Please prove it is.
> As long as there is no request to cancel, the first mechanism functions
> (and while doing that, the overhead from indication is negligible).
You need to prove that the overhead is negligible. This is what I fear isn't
the case.
> If we want to get rid of the overhead in the first mechanism (to reduce
> it), we could try the following.
> At the stage of compilation, the compiler finds the points between
> statements and generates a signature. An index of such signatures for the
> procedure is formed. Having a list of signatures, the detector looks for
> the corresponding place. The thread runs until the detector finds the
> nearest signature in the call sequence, and starts unwinding the stack.
> In this case:
> The first mechanism is responsible for: execution
> The second mechanism is responsible for: execution + detection + unwinding
> The compiler is responsible for cancellation points and if the block is
> noexcept(true) the compiler just won't generate signatures.
I'm not sure this is implementable either. Please prove it is.
-- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel DCAI Cloud Engineering
Received on 2023-07-17 19:53:41