Am 19.07.2021 um 11:29 hat Stefan Hajnoczi geschrieben: > On Fri, Jul 16, 2021 at 05:23:50PM +0200, Kevin Wolf wrote: > > Am 13.07.2021 um 15:10 hat Stefan Hajnoczi geschrieben: > > > AIO_WAIT_WHILE() requires that AioContext is acquired according to its > > > documentation, but I'm not sure that's true anymore. Thread-safe/atomic > > > primitives are used by AIO_WAIT_WHILE(), so as long as the condition > > > being waited for is thread-safe too it should work without the > > > AioContext lock. > > > > Polling something in a different AioContext from the main thread still > > temporarily drops the lock, which crashes if it isn't locked. I'm not > > sure if the documentation claims that the lock is needed in more cases, > > I guess you could interpret it either way. > > I'm claiming that the lock doesn't need to be dropped in that case > anymore - as long as the condition we're polling is thread-safe. :) > > Have I missed something that still need locking?
I'm not sure if AIO_WAIT_WHILE() actually ever needed the locking. I think it's more a convenience thing since the callers would already hold the lock, so dropping it temporarily in AIO_WAIT_WHILE() means that the callers don't have to duplicate the temporary unlock everywhere. > We could temporarily introduce an AIO_WAIT_WHILE_UNLOCKED() macro so > that callers can be converted individually. Yes, this makes sense to me. Kevin
signature.asc
Description: PGP signature
