From 1e4e0244ddf3b7d144d05aef7362443f84939d3f Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 9 Sep 2002 04:06:59 +0000 Subject: minor race condition (it seemed to work anyway, but...) svn:r100 --- src/or/connection.c | 5 +++-- src/or/connection_ap.c | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/or/connection.c b/src/or/connection.c index 243fd60a58..8b86d253b3 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -635,8 +635,9 @@ int connection_consider_sending_sendme(connection_t *conn) { circ = circuit_get_by_conn(conn); if(!circ) { - log(LOG_DEBUG,"connection_consider_sending_sendme(): Bug: no circuit associated with conn. Closing."); - return -1; + /* this can legitimately happen if the destroy has already arrived and torn down the circuit */ + log(LOG_DEBUG,"connection_consider_sending_sendme(): No circuit associated with conn. Skipping."); + return 0; } sendme.command = CELL_SENDME; sendme.length = RECEIVE_WINDOW_INCREMENT; diff --git a/src/or/connection_ap.c b/src/or/connection_ap.c index 9d96ae85b3..3080fe8226 100644 --- a/src/or/connection_ap.c +++ b/src/or/connection_ap.c @@ -365,8 +365,7 @@ int connection_ap_finished_flushing(connection_t *conn) { case AP_CONN_STATE_OPEN: /* FIXME down the road, we'll clear out circuits that are pending to close */ connection_stop_writing(conn); - connection_consider_sending_sendme(conn); - return 0; + return connection_consider_sending_sendme(conn); default: log(LOG_DEBUG,"Bug: connection_ap_finished_flushing() called in unexpected state."); return 0; -- cgit v1.2.3-54-g00ecf