Nick Mathewson
fb5ebfb507
Avoid chan/circ linear lookups for requests
...
The solution I took is to not free a circuit with a pending
uncancellable work item, but rather to set its magic number to a
sentinel value. When we get a work item, we check whether the circuit
has that magic sentinel, and if so, we free it rather than processing
the reply.
2015-01-14 11:31:12 -05:00
Nick Mathewson
6c9c54e7fa
Remove if (1) indentation in cpuworker.c
...
To avoid having diffs turn out too big, I had replaced some unneeded
ifs and fors with if (1), so that the indentation would still work out
right. Now I might as well clean those up.
2015-01-14 11:28:26 -05:00
Nick Mathewson
1e896214e7
Refactor cpuworker to use workqueue/threadpool code.
2015-01-14 11:23:34 -05:00
Nick Mathewson
cc6529e9bb
Fix check-spaces
2015-01-14 11:19:35 -05:00
Nick Mathewson
e5f8c772f4
Test and fix workqueue_entry_cancel().
2015-01-14 11:17:46 -05:00
Nick Mathewson
ebbc177005
Add shutdown and broadcast support to test_workqueue.
2015-01-14 11:17:46 -05:00
Nick Mathewson
81354b081b
Add unit test for thread IDs.
2015-01-14 11:17:43 -05:00
Nick Mathewson
7a63005220
Basic unit test for condition variables.
2015-01-14 11:17:09 -05:00
Nick Mathewson
e47a90a976
"Recursive" locks, not "reentrant" locks. Duh.
2015-01-14 11:12:40 -05:00
Nick Mathewson
d69717f61b
Use correct (absolute) time for pthread_cond_timedwait
2015-01-14 11:09:52 -05:00
Nick Mathewson
9fdc0d0594
Fix windows compilation of condition code
2015-01-14 11:09:51 -05:00
Nick Mathewson
d850ec8574
Fix linux compilation (pipe2 needs _GNU_SOURCE)
2015-01-14 11:09:51 -05:00
Nick Mathewson
74b782645a
Move thread tests into their own module
2015-01-14 11:09:47 -05:00
Nick Mathewson
c51f7c23e3
Test a little more of compat_threads.c
2015-01-14 11:05:56 -05:00
Nick Mathewson
3868b5d210
Rename mutex_for_cond -> mutex_nonreentrant
...
We'll want to use these for other stuff too.
2015-01-14 11:05:56 -05:00
Nick Mathewson
93ad89e9d2
Rename bench_workqueue -> test_workqueue and make it a unit test.
2015-01-14 11:05:56 -05:00
Nick Mathewson
b2db3fb462
Documentation for new workqueue and condition and locking stuff
2015-01-14 11:05:54 -05:00
Nick Mathewson
4abbf13f99
Add a way to tell all threads to do something.
2015-01-14 11:01:21 -05:00
Nick Mathewson
51bc0e7f3d
Isolate the "socketpair or a pipe" logic for alerting main thread
...
This way we can use the linux eventfd extension where available.
Using EVFILT_USER on the BSDs will be a teeny bit trickier, and will
require libevent hacking.
2015-01-14 11:01:19 -05:00
Nick Mathewson
c7eebe237d
Make pending work cancellable.
2015-01-14 10:56:27 -05:00
Nick Mathewson
a82604b526
Initial workqueue implemention, with a simple test.
...
It seems to be working, but more tuning is needed.
2015-01-14 10:56:24 -05:00
Nick Mathewson
6c9363310a
Specialize handling for mutexes allocated for condition variables
...
(These must not be reentrant mutexes with pthreads.)
2015-01-14 10:52:56 -05:00
Nick Mathewson
65016304d2
Add tor_cond_init/uninit
2015-01-14 10:49:59 -05:00
Nick Mathewson
e865248156
Add a timeout to tor_cond_wait; add tor_cond impl from libevent
...
The windows code may need some tweaks for it to compile; I've not
tested it yet.
2015-01-14 10:47:39 -05:00
Nick Mathewson
c2f0d52b7f
Split threading-related code out of compat.c
...
Also, re-enable the #if'd out condition-variable code.
Work queues are going to make us hack on all of this stuff a bit more
closely, so it might not be a terrible idea to make it easier to hack.
2015-01-14 10:41:53 -05:00
Nick Mathewson
518b0b3c5f
Do not log a notice on every socks connection
2015-01-14 09:54:40 -05:00
Nick Mathewson
b72acd725a
More tests as suggested by rl1987
2015-01-14 09:10:35 -05:00
George Kadianakis
220f419da1
New minimum uptime to become an HSDir is 96 hours.
2015-01-14 12:48:09 +00:00
Nick Mathewson
03f783c045
remove a bogus comment
2015-01-13 13:59:39 -05:00
Nick Mathewson
73d1d153dc
remove needless AllowDotExit in test_entryconn_rewrite_mapaddress_automap_onion2
2015-01-13 13:56:59 -05:00
Nick Mathewson
17c568b95c
Fix new unused variable warning in connection_listener_new
2015-01-13 13:45:35 -05:00
Nick Mathewson
73ccf0b33f
Uncomment a test
2015-01-13 13:42:20 -05:00
Nick Mathewson
8d1fa0c87d
update bug12585 changes file
2015-01-13 13:13:19 -05:00
Nick Mathewson
2b8cebaac0
whitespace fix
2015-01-13 13:11:39 -05:00
Nick Mathewson
d8b7dcca8d
Merge remote-tracking branch 'andrea/ticket12585_v3'
2015-01-13 12:50:55 -05:00
Nick Mathewson
9d0fab9872
Allow MapAddress and Automap to work together
...
The trick here is to apply mapaddress first, and only then apply
automapping. Otherwise, the automap checks don't get done.
Fix for bug 7555; bugfix on all versions of Tor supporting both
MapAddress and AutoMap.
2015-01-13 12:41:15 -05:00
Nick Mathewson
ab6bd78eca
(Disabled, failing) test for the bug in 7555.
2015-01-13 12:26:04 -05:00
Nick Mathewson
f2fb85f970
Remove needless strdup in addressmap_register_virtual_address()
...
Fixes bug 14195. Bugfix on 0.1.0.1-rc.
2015-01-13 12:24:42 -05:00
Nick Mathewson
6cbe016cb1
Fix memory leaks in entryconn tests.
2015-01-13 12:13:46 -05:00
Nick Mathewson
05a80bb46c
More unit tests for rewriting entry connection addresses
2015-01-13 11:08:33 -05:00
Nick Mathewson
2e1ed0815d
Actually set *expires_out in addressmap_rewrite.
...
Fixes 14193; bugfix on 35d08e30d
, which went into 0.2.3.17-beta.
2015-01-13 09:42:23 -05:00
Nick Mathewson
732c885b32
Fix a conversion warning on 32-bit clang
2015-01-12 22:33:10 -05:00
Nick Mathewson
a0b4c2f1bd
On jessie, we need a =, not a ==
2015-01-12 22:30:40 -05:00
Nick Mathewson
7257f2e31d
mktemp wants some Xs
2015-01-12 21:45:41 -05:00
Nick Mathewson
038804e13d
Tweak zero_length_keys.sh and test/include.am to make out-of-tree builds work
2015-01-12 21:28:01 -05:00
Nick Mathewson
bba995e666
Begin writing unit tests for rewrite code
2015-01-12 21:08:43 -05:00
Andrea Shepard
066acaf6b9
Explicitly chmod AF_UNIX sockets to 0600 when *GroupWritable isn't specified
2015-01-13 00:27:04 +00:00
Andrea Shepard
4316bb601a
Remove no-longer-accurate comment from connection.c
2015-01-13 00:21:59 +00:00
Andrea Shepard
cb047f4078
Fix ipv4/ipv6 traffic bits on AF_UNIX socks listeners and remove hacky workarounds for brokenness
2015-01-13 00:18:17 +00:00
Andrea Shepard
f50068b17e
Fix default list handling for parse_unix_socket_config(); avoid clearing whole pre-existing list
2015-01-12 22:12:18 +00:00