Nick Mathewson
4a6b43bf76
fix some warnings in compat_threads.c
2015-01-22 14:22:39 -05:00
Nick Mathewson
1fb9979eb8
Move a redundant _GNU_SOURCE to where it is not redundant
2015-01-22 14:18:10 -05:00
Nick Mathewson
38b3f9a619
use the correct free fn. spotted by dgoulet
2015-01-21 14:54:38 -05:00
Nick Mathewson
23fc1691b6
Merge branch 'better_workqueue_v3_squashed'
2015-01-21 14:47:16 -05:00
David Goulet
d684dbb0c7
Support monotonic time for pthread_cond_timedwait
...
This is to avoid that the pthread_cond_timedwait() is not affected by time
adjustment which could make the waiting period very long or very short which
is not what we want in any cases.
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-01-21 14:29:12 -05:00
Nick Mathewson
3c8dabf69a
Fix up some workqueue/threading issues spotted by dgoulet.
2015-01-21 12:26:41 -05:00
Nick Mathewson
ac5b70c700
handle EINTR in compat_*threads.c
2015-01-21 12:18:11 -05:00
Nick Mathewson
a52e549124
Update workqueue implementation to use a single queue for the work
...
Previously I used one queue per worker; now I use one queue for
everyone. The "broadcast" code is gone, replaced with an idempotent
'update' operation.
2015-01-15 11:05:22 -05:00
George Kadianakis
45bc5a0743
Restrict sample values of the Laplace distribution to int64_t.
...
This helps avoid undefined behavior from casting big double values to
int64_t. Fixes #14090 .
2015-01-15 14:43:58 +00:00
Nick Mathewson
051ad788e0
Incorporate some comments based on notes from dgoulet
2015-01-14 11:31:14 -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
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
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
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
d8b7dcca8d
Merge remote-tracking branch 'andrea/ticket12585_v3'
2015-01-13 12:50:55 -05:00
Nick Mathewson
2edfdc02a2
Merge remote-tracking branch 'teor/bug13111-empty-key-files-fn-empty'
2015-01-12 14:06:14 -05:00
Anthony G. Basile
8df35a0c88
src/common/compat_libevent.h: include testsupport.h
...
When tor is configured with --enable-bufferevents, the build fails
because compat_libevent.h makes use of the macro MOCK_DECL() which
is defined in testsupport.h, but not included. We add the include.
2015-01-12 01:03:47 -05:00
Nick Mathewson
b2663298e9
Fix tortls.c build with GCC<4.6
...
apparantly, "pragma GCC diagnostic push/pop" don't exist with older versions.
Fixes bug in 740e592790f570c446cbb5e6d4a77f842f75; bug not in any
released Tor.
2015-01-10 17:31:48 -05:00
Nick Mathewson
740e592790
Ignore warning for redundant decl in openssl/srtp.h
2015-01-10 16:06:25 -05:00
Nick Mathewson
53ecfba284
Merge remote-tracking branch 'teor/fix-typos'
2015-01-10 16:00:12 -05:00
teor
f8ffb57bc4
Merge branch 'master' of https://git.torproject.org/tor into bug13111-empty-key-files-fn-empty
...
Conflicts:
src/or/connection_edge.c
Merged in favour of origin.
2015-01-10 17:20:06 +11:00
teor
c200ab46b8
Merge branch 'bug14001-clang-warning' into bug13111-empty-key-files-fn-empty
...
Conflicts:
src/or/router.c
Choose newer comment.
Merge changes to comment and function invocation.
2015-01-10 16:34:10 +11:00
teor
5ac26cb7c7
Fix a minor misspelling in util.c
2015-01-10 15:52:55 +11:00
Jacob Appelbaum
8d59ddf3cb
Commit second draft of Jake's SOCKS5-over-AF_UNIX patch. See ticket #12585 .
...
Signed-off-by: Andrea Shepard <andrea@torproject.org>
2015-01-07 17:42:57 +00:00
Nick Mathewson
1abd526c75
Merge remote-tracking branch 'public/bug12985_025'
2015-01-07 11:55:50 -05:00
Nick Mathewson
cb54cd6745
Merge branch 'bug9286_v3_squashed'
2015-01-07 10:06:50 -05:00
Nick Mathewson
7984fc1531
Stop accepting milliseconds in various directory contexts
...
Have clients and authorities both have new behavior, since the
fix for bug 11243 has gone in. But make clients still accept
accept old bogus HSDir descriptors, to avoid fingerprinting trickery.
Fixes bug 9286.
2015-01-07 10:05:55 -05:00
Nick Mathewson
cf2ac8e255
Merge remote-tracking branch 'public/feature11791'
2015-01-06 13:52:54 -05:00
Nick Mathewson
f54e54b0b4
Bump copyright dates to 2015, in case someday this matters.
2015-01-02 14:27:39 -05:00
Nick Mathewson
6e689aed75
Fix a memory leak in tor-resolve
...
Resolves bug 14050
2014-12-30 12:35:01 -05:00
Nick Mathewson
b3b840443d
Remove a logically dead check to please coverity
2014-12-30 12:10:30 -05:00
Nick Mathewson
d7ecdd645a
Wipe all of the target space in tor_addr_{to,from}_sockaddr()
...
Otherwise we risk a subsequent memdup or memcpy copying
uninitialized RAM into some other place that might eventually expose
it. Let's make sure that doesn't happen.
Closes ticket 14041
2014-12-29 10:06:12 -05:00
Nick Mathewson
e85f0c650c
Merge branch 'resolvemyaddr_squashed'
2014-12-29 10:00:34 -05:00
rl1987
28217b969e
Adding comprehensive test cases for resolve_my_address.
...
Also, improve comments on resolve_my_address to explain what it
actually does.
2014-12-29 09:59:47 -05:00
rl1987
a56511e594
Fix a few comments
2014-12-29 09:59:14 -05:00
Nick Mathewson
d151a069e9
tweak whitespace; log bad socket family if bug occurs
2014-12-23 10:53:40 -05:00