aboutsummaryrefslogtreecommitdiff
path: root/src/common/compat.h
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-05-29 10:18:50 -0400
committerNick Mathewson <nickm@torproject.org>2009-05-30 18:16:24 -0400
commitfd992deeea769721dc95bacb40ea360ef42f76dd (patch)
tree70e77957df737e808fd295696fb5b7ddce14fd11 /src/common/compat.h
parentd66c3797650698778bd098bbaf9d3bbeebfa9fcf (diff)
downloadtor-fd992deeea769721dc95bacb40ea360ef42f76dd.tar.gz
tor-fd992deeea769721dc95bacb40ea360ef42f76dd.zip
Don't attempt to log messages to a controller from a worker thread.
This patch adds a function to determine whether we're in the main thread, and changes control_event_logmsg() to return immediately if we're in a subthread. This is necessary because otherwise we will call connection_write_to_buf, which modifies non-locked data structures. Bugfix on 0.2.0.x; fix for at least one of the things currently called "bug 977".
Diffstat (limited to 'src/common/compat.h')
-rw-r--r--src/common/compat.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/common/compat.h b/src/common/compat.h
index edc38faf64..4d5a016cf2 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -522,6 +522,9 @@ void tor_threads_init(void);
#define tor_threads_init() STMT_NIL
#endif
+void set_main_thread(void);
+int in_main_thread(void);
+
#ifdef TOR_IS_MULTITHREADED
#if 0
typedef struct tor_cond_t tor_cond_t;