Adapted StructuredTaskScope for Context and cancellation
Alan Bateman
alan.bateman at oracle.com
Fri Oct 24 15:15:40 UTC 2025
On 24/10/2025 13:54, Wesley Hill wrote:
> Hi, and thanks for your work on StructuredTaskScope. I recently
> adapted it for use in our services to handle (a) propagation of the
> OpenTelemetry Context, and (b) the richer cancellation model we use.
> Overall it went fairly well, and I'll give a few details and some
> minor feedback in case that's of interest.
>
> Background: We have an
> implementation of io.opentelemetry.context.Context for the usual
> purposes of passing around tracing, logging, authentication, and other
> context. We also added a cancellation signal in that Context
> implementation, very much along the lines of
> grpc-java's Context/CancellableContext classes (which also makes it
> similar to golang's Context). Cancelling a parent Context cancels all
> the child contexts, and a Context can cancel itself when it reaches a
> Deadline, and callbacks can be registered to run upon cancellation. We
> do this because thread interruption alone is not a sufficient approach
> for cancellation when we need to cancel things like HTTP or gRPC
> calls, JDBC Statements, and other I/O which isn't interruptible. (I
> understand that it's not a goal of the current structured concurrency
> JEPs to improve cancellation beyond thread interruption).
Thanks for writing up your experiences. What pain points would have
remain if somehow OpenTelemetry could use ScopedValues?
-Alan
More information about the loom-dev
mailing list