comparison upreckon/unix.py @ 251:d3a5d1929ad2

Wall-clock time limit is now enforced before handling CPU times on Win32 too
author Oleg Oshmyan <chortos@inbox.lv>
date Sun, 19 Jan 2014 01:21:22 +0000
parents acd70a60bc17
children
comparison
equal deleted inserted replaced
250:acd70a60bc17 251:d3a5d1929ad2
225 del bury_child.case 225 del bury_child.case
226 new_rusage = getrusage(RUSAGE_CHILDREN) 226 new_rusage = getrusage(RUSAGE_CHILDREN)
227 if (case.maxwalltime and 227 if (case.maxwalltime and
228 case.time_stopped - case.time_started > case.maxwalltime): 228 case.time_stopped - case.time_started > case.maxwalltime):
229 raise WallTimeLimitExceeded 229 raise WallTimeLimitExceeded
230 if new_rusage: 230 if new_rusage and (case.maxcputime or not case.maxwalltime):
231 time_started = old_rusage.ru_utime + old_rusage.ru_stime + cpustart 231 time_started = old_rusage.ru_utime + old_rusage.ru_stime + cpustart
232 time_stopped = new_rusage.ru_utime + new_rusage.ru_stime 232 time_stopped = new_rusage.ru_utime + new_rusage.ru_stime
233 # Yes, this actually happens 233 # Yes, this actually happens
234 if time_started > time_stopped: 234 if time_started > time_stopped:
235 time_started = time_stopped 235 time_started = time_stopped
236 if case.maxcputime or not case.maxwalltime: 236 case.time_started = time_started
237 case.time_started = time_started 237 case.time_stopped = time_stopped
238 case.time_stopped = time_stopped 238 case.time_limit_string = case.cpu_time_limit_string
239 case.time_limit_string = case.cpu_time_limit_string 239 if (case.maxcputime and
240 if (case.maxcputime and 240 time_stopped - time_started > case.maxcputime):
241 time_stopped - time_started > case.maxcputime): 241 raise CPUTimeLimitExceeded
242 raise CPUTimeLimitExceeded
243 if case.maxmemory: 242 if case.maxmemory:
244 if sys.platform != 'darwin': 243 if sys.platform != 'darwin':
245 maxrss = case.maxmemory * 1024 244 maxrss = case.maxmemory * 1024
246 else: 245 else:
247 maxrss = case.maxmemory * 1048576 246 maxrss = case.maxmemory * 1048576