1.1 --- a/PKG-INFO Thu Jun 19 21:43:05 2008 +0200
1.2 +++ b/PKG-INFO Sun Nov 19 00:10:06 2006 +0000
1.3 @@ -1,11 +1,11 @@
1.4 Metadata-Version: 1.1
1.5 Name: parallel
1.6 -Version: 0.2.1
1.7 +Version: 0.2.2
1.8 Author: Paul Boddie
1.9 Author-email: paul at boddie org uk
1.10 Maintainer: Paul Boddie
1.11 Maintainer-email: paul at boddie org uk
1.12 -Download-url: http://www.boddie.org.uk/python/downloads/parallel-0.2.1.tar.gz
1.13 +Download-url: http://www.boddie.org.uk/python/downloads/parallel-0.2.2.tar.gz
1.14 Summary: Elementary parallel programming for Python
1.15 License: LGPL
1.16 Description: The pprocess module provides elementary support for parallel
2.1 --- a/README.txt Thu Jun 19 21:43:05 2008 +0200
2.2 +++ b/README.txt Sun Nov 19 00:10:06 2006 +0000
2.3 @@ -51,6 +51,15 @@
2.4 This software depends on standard library features which are stated as being
2.5 available only on "UNIX"; it has only been tested on a GNU/Linux system.
2.6
2.7 +New in parallel 0.2.2 (Changes since parallel 0.2.1)
2.8 +----------------------------------------------------
2.9 +
2.10 + * Changed the status testing in the Exchange class, potentially fixing the
2.11 + premature closure of channels before all data was read.
2.12 + * Fixed the PyGmy raytracer example's process accounting by relying on the
2.13 + possibly more reliable Exchange behaviour, whilst also preventing
2.14 + erroneous creation of "out of bounds" processes.
2.15 +
2.16 New in parallel 0.2.1 (Changes since parallel 0.2)
2.17 --------------------------------------------------
2.18
3.1 --- a/pprocess.py Thu Jun 19 21:43:05 2008 +0200
3.2 +++ b/pprocess.py Sun Nov 19 00:10:06 2006 +0000
3.3 @@ -122,7 +122,7 @@
3.4 sockets are more predictable than pipes.
3.5 """
3.6
3.7 -__version__ = "0.2.1"
3.8 +__version__ = "0.2.2"
3.9
3.10 import os
3.11 import sys
3.12 @@ -273,16 +273,19 @@
3.13 readables = []
3.14 for fd, status in fds:
3.15 channel = self.readables[fd]
3.16 + removed = 0
3.17
3.18 # Remove ended/error channels.
3.19
3.20 if status & (select.POLLHUP | select.POLLNVAL | select.POLLERR):
3.21 self.remove(channel)
3.22 + removed = 1
3.23
3.24 # Record readable channels.
3.25
3.26 - elif status & select.POLLIN:
3.27 - readables.append(channel)
3.28 + if status & select.POLLIN:
3.29 + if not (removed and self.autoclose):
3.30 + readables.append(channel)
3.31
3.32 return readables
3.33