Commits

Author Commit Message Labels Comments Date
anatoly techtonik
Fix race condition in .communicate()
anatoly techtonik
Implement Popen.communicate() using non-blocking layer (WIP) This doesn't work well currently due to a delay between process exit and its final output appearance in Queue. The fix to avoid race condition in communicate is to wait until stdout/stderr pipes are closed (which meand threads are terminated) and only then read out the queues.
anatoly techtonik
Add test to validate behavioe of native Popen communicate method.
anatoly techtonik
Rename our custom communicate() to asyncomm(), so that AsyncPopen() could be a drop-in Popen() replacement.
anatoly techtonik
Separate directory for the tests.
anatoly techtonik
Added tag 0.3 for changeset 7f154d8dd5e8
anatoly techtonik
Prepare 0.3
Tags
0.3
anatoly techtonik
Move pipe.flush() in thread into the lock scope. The pipe.close() operations should probably be in this scope too.
anatoly techtonik
Change communicate() to return empty strings if pipes are alive and empty, and None if they are dead or closed.
anatoly techtonik
Wrap Popen.stdin to make direct write() and close() calls thread-safe
anatoly techtonik
Added tag 0.2.3 for changeset e05d237c622e
anatoly techtonik
Remove self. leftover.
Tags
0.2.3
anatoly techtonik
Update README, tested on Windows.
anatoly techtonik
Move threaded(Input|Output)Queue out of AsyncPopen methods There are run in separate threads and don't share state with AsyncPopen class.
anatoly techtonik
Legalese.
anatoly techtonik
async_test: It is important to call flush() after every print in child script. Otherwise output is buffered.
anatoly techtonik
Remove unnecessary flags.
anatoly techtonik
Add test.
anatoly techtonik
Move version info into .py file
anatoly techtonik
Fix wrong lock being set in communicate() for stdout pipe.
anatoly techtonik
Importing version 0.2.1 by James Buchwald