[tor-commits] [tor/master] sched: Always call on_channel_free() regardless of state

nickm at torproject.org nickm at torproject.org
Fri Sep 15 16:07:57 UTC 2017


commit 84d18f70f3400df3e9c3b3c47288e82cd9160f6e
Author: David Goulet <dgoulet at torproject.org>
Date:   Thu Sep 14 13:29:05 2017 -0400

    sched: Always call on_channel_free() regardless of state
    
    A channel can bounce in the scheduler and bounce out with the IDLE state which
    means that if it came in the scheduler once, it has socket information that
    needs to be freed from the global hash table.
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 src/or/scheduler.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/or/scheduler.c b/src/or/scheduler.c
index aaf991407..39427b782 100644
--- a/src/or/scheduler.c
+++ b/src/or/scheduler.c
@@ -547,11 +547,11 @@ scheduler_release_channel,(channel_t *chan))
                               offsetof(channel_t, sched_heap_idx),
                               chan);
     }
-    if (the_scheduler->on_channel_free) {
-      the_scheduler->on_channel_free(chan);
-    }
   }
 
+  if (the_scheduler->on_channel_free) {
+    the_scheduler->on_channel_free(chan);
+  }
   chan->scheduler_state = SCHED_CHAN_IDLE;
 }
 





More information about the tor-commits mailing list