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? We could temporarily introduce an AIO_WAIT_WHILE_UNLOCKED() macro so that callers can be converted individually. Stefan
signature.asc
Description: PGP signature