Lockvoker: Add registerInLockSet

We now create the sh_ptr to the copy of a lockvoker object in its
own supplied register method. This enables us to retain type safety
when calling make_shared, by copying the most derived version of
the lockvoker object. Then we can pass in the LockerAndInvokerBase
to the rest of the call chain.
This commit is contained in:
2025-09-30 02:55:25 -04:00
parent 08122c086c
commit ca9eae197f
3 changed files with 17 additions and 9 deletions
+1 -2
View File
@@ -74,9 +74,8 @@ public:
* cleaned up in the qutexQ's std::list destructor -- and that won't
* execute any fancy cleanup logic. It'll just clear() out the list.
*/
template <class InvocationTargetT>
void registerInQutexQueues(
const typename SerializedAsynchronousContinuation<OriginalCbFnT>::template LockerAndInvoker<InvocationTargetT> &lockvoker);
const std::shared_ptr<LockerAndInvokerBase> &lockvoker);
/**
* @brief Try to acquire all locks in order; back off if acquisition fails