diff options
Diffstat (limited to 'libadhocutil/runtimeContext.h')
-rw-r--r-- | libadhocutil/runtimeContext.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/libadhocutil/runtimeContext.h b/libadhocutil/runtimeContext.h new file mode 100644 index 0000000..6fe26f0 --- /dev/null +++ b/libadhocutil/runtimeContext.h @@ -0,0 +1,28 @@ +#ifndef ADHOCUTIL_RUNTIMECONTEXT_H +#define ADHOCUTIL_RUNTIMECONTEXT_H + +#include <stdlib.h> +#include <ucontext.h> +#include "visibility.h" + +class DLL_PUBLIC RuntimeContext { + public: + RuntimeContext(size_t stacksize = 16384); + virtual ~RuntimeContext(); + + void SwapContext(); + + protected: + DLL_PRIVATE virtual void Callback() = 0; + + private: + DLL_PRIVATE static void ccallback(RuntimeContext * rc); + + void * stack; + ucontext_t initial; + ucontext_t callback; + bool swapped; +}; + +#endif + |