33#if defined(_WIN32) || defined(WIN32) || defined(WIN64)
38#if defined(__GNUC__) && __USING_SJLJ_EXCEPTIONS__
40 struct SjLj_Function_Context {
41 struct SjLj_Function_Context *prev;
47class sc_cor_pkg_fiber;
50#if( defined(_MSC_VER) && _MSC_VER >= 1300 )
51typedef std::size_t size_t;
68 : m_stack_size( 0 ), m_fiber( 0 ), m_pkg( 0 )
70# if defined(__GNUC__) && __USING_SJLJ_EXCEPTIONS__
76 virtual ~sc_cor_fiber();
80 std::size_t m_stack_size;
83 sc_cor_pkg_fiber* m_pkg;
84#if defined(__GNUC__) && __USING_SJLJ_EXCEPTIONS__
85 struct SjLj_Function_Context m_eh;
92 sc_cor_fiber(
const sc_cor_fiber& );
93 sc_cor_fiber& operator = (
const sc_cor_fiber& );
103class sc_cor_pkg_fiber
112 virtual ~sc_cor_pkg_fiber();
115 virtual sc_cor* create( std::size_t stack_size,
sc_cor_fn* fn,
void* arg );
118 virtual void yield( sc_cor* next_cor );
121 virtual void abort( sc_cor* next_cor );
124 virtual sc_cor* get_main();
128 sc_cor_fiber m_main_cor;
129#if defined(__GNUC__) && __USING_SJLJ_EXCEPTIONS__
130 sc_cor_fiber* m_curr_cor;
137 sc_cor_pkg_fiber(
const sc_cor_pkg_fiber& );
138 sc_cor_pkg_fiber& operator = (
const sc_cor_pkg_fiber& );
class SC_API sc_simcontext
sc_cor_pkg_qt sc_cor_pkg_t