Mercurial > ~astiob > upreckon > hgweb
comparison unix.py @ 129:580f0f4687c3
Fixed EINTR fatally breaking another poll() call on Python 2.6-
| author | Oleg Oshmyan <chortos@inbox.lv> |
|---|---|
| date | Mon, 16 May 2011 21:42:43 +0100 |
| parents | 42c8f5c152a5 |
| children | e84f33a60a5c |
comparison
equal
deleted
inserted
replaced
| 128:42c8f5c152a5 | 129:580f0f4687c3 |
|---|---|
| 181 try: | 181 try: |
| 182 select((sigchld_pipe_read,), (), (), case.maxwalltime) | 182 select((sigchld_pipe_read,), (), (), case.maxwalltime) |
| 183 except SelectError: | 183 except SelectError: |
| 184 if sys.exc_info()[1].args[0] != EINTR: | 184 if sys.exc_info()[1].args[0] != EINTR: |
| 185 raise | 185 raise |
| 186 if case.process.poll() is None: | 186 # subprocess in Python 2.6- is not guarded against EINTR |
| 187 raise testcases.WallTimeLimitExceeded | 187 try: |
| 188 if case.process.poll() is None: | |
| 189 raise testcases.WallTimeLimitExceeded | |
| 190 except OSError: | |
| 191 if sys.exc_info()[1].errno != EINTR: | |
| 192 raise | |
| 193 else: | |
| 194 case.process.poll() | |
| 188 else: | 195 else: |
| 189 wait(case.process) | 196 wait(case.process) |
| 190 else: | 197 else: |
| 191 if not case.maxwalltime: | 198 if not case.maxwalltime: |
| 192 try: | 199 try: |
