Mercurial > ~astiob > upreckon > hgweb
comparison upreckon/win32.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 |
---|---|
535 case.time_stopped = clock() | 535 case.time_stopped = clock() |
536 if GetProcessTimes: | 536 if GetProcessTimes: |
537 try: | 537 try: |
538 times = GetProcessTimes(case.process._handle) | 538 times = GetProcessTimes(case.process._handle) |
539 except WindowsError: | 539 except WindowsError: |
540 pass | 540 times = None |
541 else: | 541 else: |
542 if case.maxcputime or not case.maxwalltime: | 542 case.time_stopped = times.exit |
543 cputime = times.kernel + times.user | 543 case.time_started = times.creation |
544 case.time_stopped = cputime | 544 if (case.maxwalltime and |
545 case.time_started = 0 | 545 case.time_stopped - case.time_started > case.maxwalltime): |
546 case.time_limit_string = case.cpu_time_limit_string | 546 raise WallTimeLimitExceeded |
547 if case.maxcputime and cputime > case.maxcputime: | 547 if times and (case.maxcputime or not case.maxwalltime): |
548 raise CPUTimeLimitExceeded | 548 cputime = times.kernel + times.user |
549 else: | 549 case.time_stopped = cputime |
550 case.time_stopped = times.exit | 550 case.time_started = 0 |
551 case.time_started = times.creation | 551 case.time_limit_string = case.cpu_time_limit_string |
552 walltime = times.exit - times.creation | 552 if case.maxcputime and cputime > case.maxcputime: |
553 if case.maxwalltime and walltime > case.maxwalltime: | 553 raise CPUTimeLimitExceeded |
554 raise WallTimeLimitExceeded | |
555 if case.maxcputime and case.process.returncode == 1816: | 554 if case.maxcputime and case.process.returncode == 1816: |
556 raise CPUTimeLimitExceeded | 555 raise CPUTimeLimitExceeded |
557 if case.maxmemory and GetProcessMemoryInfo: | 556 if case.maxmemory and GetProcessMemoryInfo: |
558 try: | 557 try: |
559 counters = GetProcessMemoryInfo(case.process._handle) | 558 counters = GetProcessMemoryInfo(case.process._handle) |