On Thu, Jun 26, 2025 at 09:47:18PM +0200, Danilo Krummrich wrote: > On Wed, Jun 25, 2025 at 09:13:24PM -0700, Boqun Feng wrote: > > On Tue, Jun 24, 2025 at 11:54:01PM +0200, Danilo Krummrich wrote: > > `T` also need to be `Send` for `Devres<T>` to be `Sync` because that's > > what `Revocable<T>` requires. > > I think that's because of Revocable::revoke(), however you can't call > Devres::revoke(). Well, what could happen is we create a `Arc<Devres<T>>` on one thread, and because it's `Sync`, we can have a clone of it in another thread, and if that's the last one call `Arc::drop()`, the `Revocable` will be `revoke()`d in a different thread than it's created. But with `T` always being `Send`, this is not a problem now. Regards, Boqun > > > (Unless we want `T` always being `Send` > > because of the issue I mentioned above) > > Yes, we do. > > > The rest looks good to me. > > Great! :)