ANN: Python Spread Module 1.1 Released
Guido van Rossum
Fri, 17 May 2002 16:48:16 -0400
I've released version 1.2 of the Spread Module for Python:
About the Spread Module
This package contains a simple Python wrapper module for the Spread
toolkit (see below). The wrapper is compatible with Python 2.1 and
2.2. It wraps Spread mailboxes and messages in Python objects with
appropriate methods and attributes, and turns Spread errors into
Python exceptions. Virtually all Spread features are accessible from
>From the Spread website (http://www.spread.org):
Spread is a toolkit that provides a high performance messaging service
that is resilient to faults across external or internal networks.
Spread functions as a unified message bus for distributed
applications, and provides highly tuned application-level multicast
and group communication support. Spread services range from reliable
message passing to fully ordered messages with delivery guarantees,
even in case of computer failures and network partitions.
Spread is designed to encapsulate the challenging aspects of
asynchronous networks and enable the construction of scalable
distributed applications, allowing application builders to focus on
the differentiating components of their application.
Changes since release 1.2
- Changed internal uses of Python's object memory API to stop using
macro versions of the names (that worked fine, but was dubious
practice for non-core extension modules).
- Changed mbox.disconnect() to be as safe as possible when
SPREAD_DISCONNECT_RACE_BUG is not defined.
- Added a test to ensure than the scenario described below doesn't
deadlock (two threads in a process sharing an mbox, and one thread
doing mbox.receive() waiting for the other thread to do
mbox.multicast()). This test deadlocks with high probability if you
- SPREAD_DISCONNECT_RACE_BUG is turned off, although Spread 3.16.2
still suffers the insecurity it was guarding against. Alas, the
workaround can cause deadlocks, depending on how the app uses
--Guido van Rossum (home page: http://www.python.org/~guido/)