• David Wilson's avatar
    core: fix crash in fork stress test · d4bc4446
    David Wilson authored
    14:50:04 E mitogen: mitogen.fork.Stream('fork.7431') crashed
    Traceback (most recent call last):
      File "/home/dmw/src/mitogen/mitogen/core.py", line 1287, in _call
        func(self)
      File "/home/dmw/src/mitogen/mitogen/core.py", line 758, in on_receive
        return self.on_disconnect(broker)
      File "/home/dmw/src/mitogen/mitogen/parent.py", line 370, in on_disconnect
        super(Stream, self).on_disconnect(broker)
      File "/home/dmw/src/mitogen/mitogen/core.py", line 721, in on_disconnect
        fire(self, 'disconnect')
      File "/home/dmw/src/mitogen/mitogen/core.py", line 162, in fire
        return [func(*args, **kwargs) for func in signals.get(name, ())]
      File "/home/dmw/src/mitogen/mitogen/core.py", line 1160, in <lambda>
        listen(stream, 'disconnect', lambda: self.on_stream_disconnect(stream))
      File "/home/dmw/src/mitogen/mitogen/core.py", line 1142, in on_stream_disconnect
        for context in self._context_by_id.itervalues():
    RuntimeError: dictionary changed size during iteration
    d4bc4446
core.py 49.2 KB