-
Notifications
You must be signed in to change notification settings - Fork 665
Description
I run into issues with a type I would like to be UnwindSafe
. It contains an AbortHandle
which contains a AtomicWaker
and these types aren't unwindsafe because AtomicWaker
contains an UnsafeCell
.
In the current state of affairs it is up to a user in such situation to go figure out from the futures source code whether these are UnwindSafe
but it was forgotten to mark them as such, or whether they are not UnwindSafe
but that was not mentioned in the docs.
From a quick look over the code for Abortable
I can't immediately see how it could be in an invalid state because of a panic in an inopportune moment, but guaranteeing that with certainty for code one hasn't written is quite some work.
So should these types be marked UnwindSafe
and has anyone enough understanding of their internals to quickly verify that? I presume there are other types in futures that are concerned as well (eg. channel Senders/Receivers).