By calling co_await QCoro::thisCoro() user can obtain CoroutineFeatures object specific to the current coroutine, and through it they can control behavior of the coroutine.
The one feature implemented so far is "guardThis", which monitors the lifetime of a given QObject-derived object. If the object is destroyed while the coroutine is suspended, when the time comes to resume it, it is destroyed instead. This is mostly useful to watch lifetime of this, so that when a member coroutine function is suspended and the object is deleted in the meantime, it will prevent the coroutine from continuing with a dangling this pointer when resumed.
By calling
co_await QCoro::thisCoro()
user can obtain CoroutineFeatures object specific to the current coroutine, and through it they can control behavior of the coroutine.The one feature implemented so far is "guardThis", which monitors the lifetime of a given QObject-derived object. If the object is destroyed while the coroutine is suspended, when the time comes to resume it, it is destroyed instead. This is mostly useful to watch lifetime of
this
, so that when a member coroutine function is suspended and the object is deleted in the meantime, it will prevent the coroutine from continuing with a danglingthis
pointer when resumed.