tor/src/common
Nick Mathewson c5a3e2ca44 Generic mechaism for "post-loop" callbacks
We've been labeling some events as happening "outside the event
loop", to avoid Libevent starvation.  This patch provides a cleaner
mechanism to avoid that starvation.

For background, the problem here is that Libevent only scans for new
events once it has run all its active callbacks.  So if the
callbacks keep activating new callbacks, they could potentially
starve Libevent indefinitely and keep it from ever checking for
timed, socket, or signal events.

To solve this, we add the ability to label some events as
"post-loop".  The rule for a "post-loop" event is that any events
_it_ activates can only be run after libevent has re-scanned for new
events at least once.
2018-04-13 10:44:15 -04:00
..
address_set.c Merge remote-tracking branch 'dgoulet/ticket24902_029_05' 2018-02-13 08:47:06 -05:00
address_set.h whitespace and typo cleanups 2018-02-09 17:05:20 -05:00
address.c Merge branch 'maint-0.3.1' into maint-0.3.2 2018-02-16 09:54:13 -05:00
address.h Merge branch 'maint-0.3.1' into maint-0.3.2 2018-02-16 09:54:13 -05:00
aes.c Merge remote-tracking branch 'ffmancera/bug24658-openssl' 2018-01-23 14:02:45 -05:00
aes.h Replace all FREE_AND_NULL* uses to take a type and a free function. 2017-12-08 14:47:19 -05:00
backtrace.c Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
backtrace.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
buffers_tls.c Make some assertions nonfatal to help prevent bug23690 recurrence. 2017-09-29 10:29:33 -04:00
buffers_tls.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
buffers.c Merge branch 'macro_free_v2_squashed' 2017-12-08 14:58:43 -05:00
buffers.h Remove a bunch of other redundant #includes 2018-02-20 10:14:15 -05:00
ciphers.inc Merge branch 'maint-0.2.9' into maint-0.3.1 2018-02-10 16:09:00 -05:00
compat_libevent.c Generic mechaism for "post-loop" callbacks 2018-04-13 10:44:15 -04:00
compat_libevent.h Generic mechaism for "post-loop" callbacks 2018-04-13 10:44:15 -04:00
compat_openssl.h Fix spelling mistakes corresponding to ticket #23650 2018-02-07 10:41:57 -05:00
compat_pthreads.c Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
compat_threads.c Merge branch 'macro_free_v2_squashed' 2017-12-08 14:58:43 -05:00
compat_threads.h Merge branch 'macro_free_v2_squashed' 2017-12-08 14:58:43 -05:00
compat_time.c Fix spelling mistakes corresponding to ticket #23650 2018-02-07 10:41:57 -05:00
compat_time.h Add a function to add msec to a monotime. 2017-12-13 08:54:29 -05:00
compat_winthreads.c Remove a bunch of other redundant #includes 2018-02-20 10:14:15 -05:00
compat.c Merge branch 'maint-0.3.3' 2018-04-12 11:14:42 -04:00
compat.h Merge branch 'maint-0.3.3' 2018-04-12 11:14:42 -04:00
compress_lzma.c Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
compress_lzma.h Replace all FREE_AND_NULL* uses to take a type and a free function. 2017-12-08 14:47:19 -05:00
compress_none.c Fix compress_none.c header comment 2017-06-20 11:27:17 -04:00
compress_none.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
compress_zlib.c Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
compress_zlib.h Replace all FREE_AND_NULL* uses to take a type and a free function. 2017-12-08 14:47:19 -05:00
compress_zstd.c Use autoconf to check for optional zstd functionality. 2018-02-18 16:19:43 -05:00
compress_zstd.h Warn on zstd header/library version mismatch 2018-02-06 11:05:07 -05:00
compress.c Warn on zstd header/library version mismatch 2018-02-06 11:05:07 -05:00
compress.h Warn on zstd header/library version mismatch 2018-02-06 11:05:07 -05:00
confline.c Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
confline.h Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
container.c Include crypto_digest.h in order to solve dependency issues. 2018-02-03 17:04:36 +01:00
container.h Replace all FREE_AND_NULL* uses to take a type and a free function. 2017-12-08 14:47:19 -05:00
crypto_curve25519.c Include crypto_digest.h in order to solve dependency issues. 2018-02-03 17:04:36 +01:00
crypto_curve25519.h crypto: Remove unnecessary curve25519 header from crypto_digest.h. 2018-02-20 20:29:54 +00:00
crypto_digest.c Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
crypto_digest.h Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
crypto_ed25519.c Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
crypto_ed25519.h Fix wide lines introduced by previous patch. 2017-12-08 14:47:19 -05:00
crypto_format.c Include crypto_digest.h in order to solve dependency issues. 2018-02-03 17:04:36 +01:00
crypto_format.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
crypto_openssl_mgt.c Add missing static keywords 2018-01-23 16:01:26 -06:00
crypto_openssl_mgt.h Move the openssl namespace back into .c files. 2018-01-22 16:48:33 +01:00
crypto_pwbox.c Include crypto_digest.h in order to solve dependency issues. 2018-02-03 17:04:36 +01:00
crypto_pwbox.h Make sure all C files have copyright/license notices 2017-10-27 10:59:36 -04:00
crypto_rsa.c Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
crypto_rsa.h Move crypto_pk_obsolete_* functions into RSA module. 2018-02-16 18:23:21 +01:00
crypto_s2k.c Include crypto_digest.h in order to solve dependency issues. 2018-02-03 17:04:36 +01:00
crypto_s2k.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
crypto.c Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
crypto.h Move crypto_pk_obsolete_* functions into RSA module. 2018-02-16 18:23:21 +01:00
di_ops.c Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
di_ops.h Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
handles.h Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
include.am Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
linux_syscalls.inc Move code-generation scripts to scripts/codegen 2014-05-07 01:17:41 -04:00
log.c Merge remote-tracking branch 'isis/bug23881_r1' 2018-03-19 17:20:37 -04:00
Makefile.nmake Add compress_zlib.obj to src/common/Makefile.nmake. 2017-04-25 08:06:01 -04:00
memarea.c Fix compilation with --disable-memory-sentinels 2017-12-11 08:01:54 -05:00
memarea.h Convert the rest of src/common's headers to use FREE_AND_NULL 2017-12-08 14:47:19 -05:00
procmon.c Revise procmon.c to use periodic_timer_t 2018-04-05 12:35:11 -04:00
procmon.h Replace all FREE_AND_NULL* uses to take a type and a free function. 2017-12-08 14:47:19 -05:00
pubsub.c Run the copyright update script. 2017-03-15 16:13:17 -04:00
pubsub.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
sandbox.c Merge branch 'maint-0.3.2' into maint-0.3.3 2018-03-26 10:29:29 -04:00
sandbox.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
storagedir.c Merge branch 'macro_free_v2_squashed' 2017-12-08 14:58:43 -05:00
storagedir.h Fix wide lines introduced by previous patch. 2017-12-08 14:47:19 -05:00
testsupport.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
timers.c Add an API for a scheduled/manually activated event in the mainloop 2018-04-05 12:35:11 -04:00
timers.h Replace all FREE_AND_NULL* uses to take a type and a free function. 2017-12-08 14:47:19 -05:00
torint.h Fix minGW compatibility issue with zu format specifier. 2018-01-12 17:44:30 +01:00
torlog.h Move rust-specific declarations outside of #else block 2018-03-19 19:18:23 -04:00
tortls.c Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge 2018-03-26 20:12:59 -04:00
tortls.h Move the pk-digest functions into crypto_rsa.[ch]. 2018-02-16 12:04:22 +01:00
util_bug.c Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
util_bug.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
util_format.c Move around some LCOV_EXCLs in src/common 2017-09-28 09:25:17 -04:00
util_format.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
util_process.c Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
util_process.h Run our #else/#endif annotator on our source code. 2017-09-15 16:24:44 -04:00
util.c Remove windows log_from_handle as unused. 2018-04-12 12:38:46 -04:00
util.h Remove PortForwarding options 2018-04-04 00:19:33 +00:00
workqueue.c Move responsibility for threadpool reply-handler events to workqueue 2018-04-05 12:36:28 -04:00
workqueue.h Move responsibility for threadpool reply-handler events to workqueue 2018-04-05 12:36:28 -04:00