diff --git a/src/Draw/Draw_BasicCommands.cxx b/src/Draw/Draw_BasicCommands.cxx index 2984977dff..cc9d4099cf 100755 --- a/src/Draw/Draw_BasicCommands.cxx +++ b/src/Draw/Draw_BasicCommands.cxx @@ -58,6 +58,7 @@ static clock_t MDTV_CPU_CURRENT; // cpu time already used at last #include #include +#include #if defined (__hpux) || defined ( HPUX ) #define RLIM_INFINITY 0x7fffffff @@ -208,6 +209,31 @@ static Standard_Integer Draw_wait(Draw_Interpretor& , Standard_Integer n, const return 0; } +//======================================================================= +//function : cpulimit +//purpose : +//======================================================================= +#ifdef WNT +static unsigned int __stdcall CpuFunc (void * param) +{ + clock_t aCurrent; + while (1) + { + Sleep (5); + Standard_Real anUserSeconds, aSystemSeconds; + OSD_Chronometer::GetProcessCPU (anUserSeconds, aSystemSeconds); + aCurrent = clock_t(anUserSeconds + aSystemSeconds); + + if ((aCurrent - MDTV_CPU_CURRENT) >= MDTV_CPU_LIMIT) + { + printf ("CpuFunc : Fin sur Cpu Limit \n"); + ExitProcess (2); + return 0; + } + } + return 0; +} +#endif static Standard_Integer cpulimit(Draw_Interpretor& di, Standard_Integer n, const char** a) { @@ -226,25 +252,27 @@ static Standard_Integer cpulimit(Draw_Interpretor& di, Standard_Integer n, const #else //WNT - static int first=1; -/* - unsigned int __stdcall CpuFunc(void * ); - unsigned ThreadID; + static int aFirst = 1; - if (n <= 1) MDTV_CPU_LIMIT = RLIM_INFINITY; - else { - - MDTV_CPU_LIMIT = atoi(a[1]); - MDTV_CPU_CURRENT = clock()/1000; + unsigned int __stdcall CpuFunc (void *); + unsigned aThreadID; - if (first) // Launch the thread only at the 1st call. - { - first=0 ; - _beginthreadex(NULL,0,CpuFunc,NULL,0,&ThreadID); - } + if (n <= 1) + MDTV_CPU_LIMIT = RLIM_INFINITY; + else + { + MDTV_CPU_LIMIT = atoi (a[1]); + Standard_Real anUserSeconds, aSystemSeconds; + OSD_Chronometer::GetProcessCPU (anUserSeconds, aSystemSeconds); + MDTV_CPU_CURRENT = clock_t(anUserSeconds + aSystemSeconds); + + if (aFirst) // Launch the thread only at the 1st call. + { + aFirst = 0; + _beginthreadex (NULL, 0, CpuFunc, NULL, 0, &aThreadID); + } } -*/ #endif return 0; diff --git a/src/SWDRAW/FILES b/src/SWDRAW/FILES deleted file mode 100755 index c8575978a6..0000000000 --- a/src/SWDRAW/FILES +++ /dev/null @@ -1 +0,0 @@ -cpulimit.pc diff --git a/src/SWDRAW/SWDRAW.cxx b/src/SWDRAW/SWDRAW.cxx index 87981f5a24..b380bc5203 100755 --- a/src/SWDRAW/SWDRAW.cxx +++ b/src/SWDRAW/SWDRAW.cxx @@ -36,25 +36,6 @@ static int dejadraw = 0; -//======================================================================= -//function : cpulimit (WNT) -//purpose : -//======================================================================= - -#ifdef WNT -#include "cpulimit.pc" - -static Standard_Integer cpulimit_draw(Draw_Interpretor& di, Standard_Integer n, const char** a) -{ - if (n < 2) { di<<"Give a value"<<"\n"; return 1; } - int nn = atoi(a[1]); - di<<"LIMIT ELASPED TIME = "<a; use no args to get help",__FILE__,LocSet,"essai"); theCommands.Add("LocDump", "a: dump location of a",__FILE__,LocDump,"essai"); diff --git a/src/SWDRAW/cpulimit.pc b/src/SWDRAW/cpulimit.pc deleted file mode 100755 index 5867615c6e..0000000000 --- a/src/SWDRAW/cpulimit.pc +++ /dev/null @@ -1,59 +0,0 @@ -#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