Mark McLoughlin a3a684d2c9 Fix race condition in ReplyWaiters.wake_all()
While we're iterating over the queues in ReplyWaiters.wake_all(), new
queues can be registered and we get:

  RuntimeError: dictionary changed size during iteration

Instead of using an iterator, take a snapshot list of message IDs and
operate on that.

We don't actually care about any new queues added after wake_all() is
called because the connection lock has already been dropped so one of
the other waiters must have picked it up.

We also don't need to worry about queues being removed - if we write to
a removed queue, that's not going to be a problem.

Change-Id: Ib572cbfd3a7346b76579f82b64aa85a03c1a4fb2
2013-08-05 13:15:54 +01:00
2013-07-27 15:49:48 +01:00
2013-06-24 12:52:41 +01:00
2013-06-24 12:52:30 +01:00

Oslo Messaging Library

The Oslo messaging API supports RPC and notifications over a number of different messsaging transports.

Description
OpenStack library for messaging
Readme 36 MiB
Languages
Python 99.8%
Shell 0.2%