When rabbitmq is restarted while my application is connected, my app dies with the following exception:
TypeError: 'NoneType' object is not callable
Looks like the problem is that ConnectionChannel._recv_close() schedules a call to self.connection._close_cb even if it is None. I can work around the problem by passing a close_cb argument to haigha.connection.Connection().
This changes the close callback interface such that it no longer takes any arguments.