wtask.cxx

来自「C-smile OOL is a scripting language with」· CXX 代码 · 共 56 行

CXX
56
字号
//-< WTASK.CXX >-----------------------------------------------------*--------*
// SAL                       Version 1.0         (c) 1997  GARRET    *     ?  *
// (System Abstraction Layer)                                        *   /\|  *
//                                                                   *  /  \  *
//                          Created:      5-Apr-97    K.A. Knizhnik  * / [] \ *
//                          Last update: 10-Jun-97    K.A. Knizhnik  * GARRET *
//-------------------------------------------------------------------*--------*
// Tasking implemented for Win32
//-------------------------------------------------------------------*--------*

#include "task.h"

namespace sal 
{

//
// Task 
//

task* task::create(fptr f, void* arg, priority pri, size_t stack_size)
{ 
    DWORD threadid;
    HANDLE h = CreateThread(NULL, stack_size, 
			    LPTHREAD_START_ROUTINE(f), arg,
			    CREATE_SUSPENDED, &threadid);
    SetThreadPriority(h, THREAD_PRIORITY_LOWEST + 
		(THREAD_PRIORITY_HIGHEST - THREAD_PRIORITY_LOWEST) 
		* (pri - pri_background) 
		/ (pri_realtime - pri_background));
    ResumeThread(h);
    CloseHandle(h);
    return (task*)threadid; 
}
 
void task::initialize(size_t) {}

void task::reschedule() {}

task* task::current() 
{ 
    return (task*)GetCurrentThreadId();
}

void task::exit() 
{
    ExitThread(0);
} 


void task::sleep(timeout_t msec)
{
    Sleep(msec);
}

};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?