# HG changeset patch # User Oleg Oshmyan # Date 1293049690 -7200 # Node ID fcb5ab97f08ed50a6b1d15a3890422536996a1fd # Parent 94946bc0a3a8f63357a297d37bd2bf650947ae16 Improved run-time reporting and fixed a potential hang on POSIX diff -r 94946bc0a3a8 -r fcb5ab97f08e testcases.py --- a/testcases.py Wed Dec 22 19:12:45 2010 +0200 +++ b/testcases.py Wed Dec 22 22:28:10 2010 +0200 @@ -92,7 +92,11 @@ from signal import SIGCHLD, signal, SIG_DFL from select import select, error as select_error from errno import EINTR - import pickle + import fcntl + try: + import cPickle as pickle + except ImportError: + import pickle except ImportError: try: from _subprocess import WAIT_OBJECT_0, STD_INPUT_HANDLE, INFINITE @@ -191,7 +195,9 @@ os.close(read) if preexec_fn_: preexec_fn_() - os.write(write, pickle.dumps(clock(), 1)) + fcntl.fcntl(write, fcntl.F_SETFD, fcntl.fcntl(write, fcntl.F_GETFD) | getattr(fcntl, 'FD_CLOEXEC', 1)) + fwrite = os.fdopen(write, 'ab') + pickle.dump(clock(), fwrite, 1) kwargs['preexec_fn'] = preexec_fn try: case.process = Popen(*args, **kwargs)