I may have found the area of the deadlock.<div><br></div><div>RabbitMQ.Util.BlockingCell</div><div><br></div><div>In the Value get on the Monitor.wait(this);</div><div><br></div><div><br><br>On Thursday, September 20, 2012 1:32:26 PM UTC-5, Mark Ward wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hi,<div><br></div><div>I have a framework that upon receiving an event from the IConnection.ConnectionShutdown event will call dispose for all IModel it has. &nbsp;What I have found is the IModel.Dispose or IModel.Close will lock up and is blocked if called from the ConnectionShutdown event handler. &nbsp;I am not sure if this is expected behavior of the IModel to lock up like this. &nbsp;I understand the closing of the connection will clean up all models and I may look into making my code detect if during a ConnectionShutdown event to not dispose or close the model as the connection will manage this.</div><div><br></div><div>Is it expected for IModel dispose/close to lock if called during a ConnectionShutdown event? &nbsp;If it is expected I assume it will be okay to null the reference to the models on the connection that fired the ConnectionShutdown event and not cause any problems?</div><div><br></div><div>-Mark</div><div><br></div></blockquote></div>