Mercurial > ~astiob > upreckon > hgweb
comparison testcases.py @ 65:fcb5ab97f08e
Improved run-time reporting and fixed a potential hang on POSIX
| author | Oleg Oshmyan <chortos@inbox.lv> |
|---|---|
| date | Wed, 22 Dec 2010 22:28:10 +0200 |
| parents | fb9d0223a871 |
| children | c0f1b87013ad |
comparison
equal
deleted
inserted
replaced
| 64:94946bc0a3a8 | 65:fcb5ab97f08e |
|---|---|
| 90 | 90 |
| 91 try: | 91 try: |
| 92 from signal import SIGCHLD, signal, SIG_DFL | 92 from signal import SIGCHLD, signal, SIG_DFL |
| 93 from select import select, error as select_error | 93 from select import select, error as select_error |
| 94 from errno import EINTR | 94 from errno import EINTR |
| 95 import pickle | 95 import fcntl |
| 96 try: | |
| 97 import cPickle as pickle | |
| 98 except ImportError: | |
| 99 import pickle | |
| 96 except ImportError: | 100 except ImportError: |
| 97 try: | 101 try: |
| 98 from _subprocess import WAIT_OBJECT_0, STD_INPUT_HANDLE, INFINITE | 102 from _subprocess import WAIT_OBJECT_0, STD_INPUT_HANDLE, INFINITE |
| 99 except ImportError: | 103 except ImportError: |
| 100 WAIT_OBJECT_0 = 0 | 104 WAIT_OBJECT_0 = 0 |
| 189 read, write = os.pipe() | 193 read, write = os.pipe() |
| 190 def preexec_fn(): | 194 def preexec_fn(): |
| 191 os.close(read) | 195 os.close(read) |
| 192 if preexec_fn_: | 196 if preexec_fn_: |
| 193 preexec_fn_() | 197 preexec_fn_() |
| 194 os.write(write, pickle.dumps(clock(), 1)) | 198 fcntl.fcntl(write, fcntl.F_SETFD, fcntl.fcntl(write, fcntl.F_GETFD) | getattr(fcntl, 'FD_CLOEXEC', 1)) |
| 199 fwrite = os.fdopen(write, 'ab') | |
| 200 pickle.dump(clock(), fwrite, 1) | |
| 195 kwargs['preexec_fn'] = preexec_fn | 201 kwargs['preexec_fn'] = preexec_fn |
| 196 try: | 202 try: |
| 197 case.process = Popen(*args, **kwargs) | 203 case.process = Popen(*args, **kwargs) |
| 198 except OSError: | 204 except OSError: |
| 199 os.close(read) | 205 os.close(read) |
