Libspinscale: Initial top-level SMO port to coroutine framework

We haven't ported everything. Just the top-level methods. We'll
dig in to the leaf stuff later. Surprisingly, this all went without
any real difficulties.

Runs like a charm on first try.
This commit is contained in:
2026-05-24 16:12:29 -04:00
parent c539e6e924
commit cde2737876
44 changed files with 1296 additions and 1530 deletions
+30
View File
@@ -0,0 +1,30 @@
#ifndef SMO_BODY_THREAD_H
#define SMO_BODY_THREAD_H
#include <boost/asio/io_service.hpp>
#include <spinscale/co/invokers.h>
#include <spinscale/co/postingPromise.h>
namespace smo {
namespace body {
struct BodyThreadTag
{
static boost::asio::io_service &io_service();
};
template <typename T>
using BodyPostingPromise =
sscl::co::TaggedPostingPromise<T, BodyThreadTag>;
using BodyNonViralPostingInvoker =
sscl::co::NonViralPostingInvoker<BodyPostingPromise>;
template <typename T>
using BodyViralPostingInvoker =
sscl::co::ViralPostingInvoker<BodyPostingPromise, T>;
} // namespace body
} // namespace smo
#endif // SMO_BODY_THREAD_H