コード例 #1
0
ファイル: ssx_thread_core.c プロジェクト: open-power/occ
void
__ssx_schedule(void)
{
    __ssx_next_priority = __ssx_thread_queue_min(&__ssx_run_queue);
    __ssx_next_thread = __ssx_priority_map[__ssx_next_priority];

    if ((__ssx_next_thread == 0) ||
        (__ssx_next_thread != __ssx_current_thread))
    {

        if (__ssx_kernel_mode_thread())
        {
            if (__ssx_kernel_context_thread())
            {
                if (__ssx_current_thread != 0)
                {
                    __ssx_switch();
                }
                else
                {
                    __ssx_next_thread_resume();
                }
            }
            else
            {
                __ssx_delayed_switch = 1;
            }
        }
    }
}
コード例 #2
0
ファイル: ssx_thread_core.c プロジェクト: code-hippo/occ
void
__ssx_start_threads(void)
{
    SSX_START_THREADS_HOOK;

    __ssx_next_thread_resume();

    SSX_PANIC(SSX_START_THREADS_RETURNED);
}