Detach circuits from circuitmux early when freeing channel so they can find the channel by ID

This commit is contained in:
Andrea Shepard 2012-10-01 14:22:04 -07:00
parent 3d092ffbdd
commit c097fb33fc

View File

@ -2766,6 +2766,10 @@ channel_free_list(smartlist_t *channels, int mark_for_close)
"in state %s (%d)",
curr, U64_PRINTF_ARG(curr->global_identifier),
channel_state_to_string(curr->state), curr->state);
/* Detach circuits early so they can find the channel */
if (curr->cmux) {
circuitmux_detach_all_circuits(curr->cmux);
}
channel_unregister(curr);
if (mark_for_close) {
if (!(curr->state == CHANNEL_STATE_CLOSING ||