Libspinscale: begin splitting it off

This commit is contained in:
2025-12-26 01:18:39 -04:00
parent d5c2b61d4c
commit 45959f9d1c
67 changed files with 776 additions and 615 deletions
+31
View File
@@ -0,0 +1,31 @@
#ifndef SPINSCALE_CALLBACK_H
#define SPINSCALE_CALLBACK_H
#include <memory>
namespace smo {
// Forward declaration
class AsynchronousContinuationChainLink;
/**
* @brief Callback class that wraps a function and its caller continuation
*
* This class provides a way to pass both a callback function and the
* caller's continuation in a single object, enabling deadlock detection
* by walking the chain of continuations.
*
* Usage: Callback<CbFnT>{context, std::bind(...)}
*/
template<typename CbFnT>
class Callback
{
public:
// Aggregate initialization allows: Callback<CbFnT>{context, std::bind(...)}
std::shared_ptr<AsynchronousContinuationChainLink> callerContinuation;
CbFnT callbackFn;
};
} // namespace smo
#endif // SPINSCALE_CALLBACK_H