Revision: 88
http://acmcontester.svn.sourceforge.net/acmcontester/?rev=88&view=rev
Author: oracle_
Date: 2008-05-05 08:58:05 -0700 (Mon, 05 May 2008)
Log Message:
-----------
Add realtime limit (100*TimeLimit)
Modified Paths:
--------------
ACMServer/branches/Version_2/Server/TestingUnit.pas
Modified: ACMServer/branches/Version_2/Server/TestingUnit.pas
===================================================================
--- ACMServer/branches/Version_2/Server/TestingUnit.pas 2008-05-05 12:59:58 UTC (rev 87)
+++ ACMServer/branches/Version_2/Server/TestingUnit.pas 2008-05-05 15:58:05 UTC (rev 88)
@@ -46,6 +46,7 @@
Res:TRes;
PMC:_PROCESS_MEMORY_COUNTERS;
ErrFile:string;
+ starttime:DWORD;
begin
@@ -171,6 +172,7 @@
Res.ResStr:='Cant create process with exe file="'+ExeFile+'"';
end
else begin
+ starttime:=GetTickCount();
repeat
GetProcessMemoryInfo(PI.hProcess,@PMC,sizeof(PMC));
@@ -213,6 +215,18 @@
break;
end;
+ if GetTickCount-starttime>TimeLimit*100 then
+ begin
+ Res.ResInt:=R_TimeLimit;
+ Res.ResStr:='Time Limit (due to realtime limit)';
+ TerminateProcess(pi.hProcess,0);
+ if WaitForSingleObject(PI.hProcess, TerProcTimeOut)=WAIT_TIMEOUT then
+ begin
+ Res.ResInt:=R_InTimeError;
+ Res.ResStr:='Can not terminate process';
+ end;
+ break;
+ end;
Sleep(WaitConst);
until not ((ET.dwLowDateTime=0) and (ET.dwHighDateTime=0));
@@ -258,4 +272,4 @@
end;
-end.
+end.
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|