#ifdef WNT #include #include #include #include #include #include static clock_t MDTV_CPU_LIMIT; // Cpu_limit in Sec. static clock_t MDTV_CPU_CURRENT; // cpu time already used at last // cpulimit call. (sec.) static unsigned int __stdcall CpuFunc(void * param) { clock_t current; while ( 1 ) { Sleep(5); current = clock()/1000; if ((current-MDTV_CPU_CURRENT) >= MDTV_CPU_LIMIT ){ printf("CpuFunc : Fin sur Cpu Limit \n"); ExitProcess(2); return(0); } } return(0); } //static Standard_Integer cpulimit(Draw_Interpretor& DI, Standard_Integer n, char** a) void limitelapsed(int n ) { static int first=1; unsigned int __stdcall CpuFunc(void * ); unsigned ThreadID; MDTV_CPU_LIMIT = n; MDTV_CPU_CURRENT = clock()/1000; if (first) { // Lancer le thread au 1er appel seulement. first=0; _beginthreadex( NULL, // no security attributes 0, // use default stack size CpuFunc, // thread function NULL, // argument to thread function 0, // use default creation flags &ThreadID); // returns the thread identifier } } #endif