Mercurial > ~astiob > upreckon > hgweb
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 |