Jeff Becker
16c7e7dd33
fix unit tests
2019-12-19 10:25:52 -05:00
Thomas Winget
f4c9e09d44
remove obsolete timer-related code
2019-12-18 19:05:33 -05:00
Thomas Winget
71bb0dd520
implement timers using libuv
...
So far only a bit of the code using timers has been modified to use
the new libuv-based timers. Also only the non-Windows case has been
implemented. Seems to be working though, so it's a good time to commit.
2019-12-18 13:11:13 -05:00
Rick V
a08d2ff64e
microsoft libc a shit
2019-12-16 11:32:50 -06:00
Rick V
caa6549cbb
clang-format everything
2019-12-16 11:32:49 -06:00
Rick V
64710ca4d4
Explicitly align to 16 bytes on Win32 targets
2019-12-16 11:28:48 -06:00
Jeff Becker
896dd85a2b
allow multiple calls to FeedData
2019-12-15 12:01:29 -05:00
Jeff Becker
53b159e361
dont fail on 0 sized data fed to json parser
2019-12-15 11:59:26 -05:00
Stephen Shelton
a4aef312ae
make format (or format-verify, at least)
2019-12-12 10:09:57 -07:00
Jason Rhinelander
d4a5dc66ac
Change alignment to std::max_align_t
...
This will typically be stricter alignment (16 byte on amd64) which seems
useful for the intended use case here.
2019-12-12 12:15:13 -04:00
Jason Rhinelander
460d64fc0f
Simplify AlignedBuffer alignment implementation
...
This simplifies the use of std::aligned_storage with just using an
`alignas` on AlignedBuffer itself so that the (only) data member gets
the proper alignment and saves a bunch of reinterpret_casts in favour of
just having the std::array as an ordinary member.
2019-12-12 12:12:45 -04:00
Stephen Shelton
e2e9e63467
Optimize AlignedBuffer:::IsZero()
2019-12-10 11:50:52 -07:00
Jeff Becker
8455d5d1cf
more cleanup
2019-12-10 11:49:32 -07:00
Jeff Becker
b286230d40
limit timer calls
2019-12-10 11:49:32 -07:00
Jeff Becker
35672e6d8c
call timers with queuer if set
2019-12-10 11:49:32 -07:00
Jeff Becker
cec36b62b5
make logic and net thread one in the same
2019-12-10 11:49:32 -07:00
Jeff Becker
c9d38d421b
clang fixes
2019-12-10 11:49:32 -07:00
Jeff
fa75d7c96f
Merge pull request #957 from majestrate/reduce-cpu-use-in-tun-handler-2019-12-09
...
reduce cpu use in logic thread
2019-12-09 17:35:27 -05:00
Jeff Becker
a7884a82e2
use faster hashing
2019-12-09 17:35:05 -05:00
Jeff Becker
950006c036
reduce log levels at runtime
2019-12-09 08:08:30 -05:00
Jeff
512a350783
Merge pull request #953 from majestrate/try-preventing-router-lockup-2019-12-07
...
try fixing router lockup
2019-12-09 07:38:17 -05:00
Jeff Becker
c010bf05a6
use correct format string
2019-12-07 15:05:07 -05:00
Jeff Becker
f56e543d75
add deadlock checker and revert bencode change from long ago
2019-12-07 14:58:19 -05:00
Jeff Becker
c5f198cfa1
disable absl decorator in release
2019-12-07 14:22:10 -05:00
Jeff Becker
2eabe98d9b
add systemd watchdog if enabled on compile time
2019-12-07 14:21:26 -05:00
Jeff Becker
8ceb20452a
add absl annotations
2019-12-07 07:28:43 -05:00
Jeff Becker
fe6783eef6
squash possible race condition
2019-12-07 07:19:26 -05:00
Jason Rhinelander
8d2c22fc72
Replace cppbackport with ghc-filesystem
...
From https://github.com/gulrak/filesystem which is more up-to-date and
looks better maintained than cppbackport.
2019-12-06 20:41:22 -04:00
Jeff
1396b7b857
Merge branch 'dev' into bootstrap-list-2019-12-06
2019-12-06 15:34:38 -05:00
Jeff Becker
0afb3b320b
add bootstrap list functionality and utility
2019-12-06 12:32:46 -05:00
Stephen Shelton
66a058a2af
Make format
2019-12-06 10:13:09 -07:00
Jeff
27b1e36039
Merge pull request #936 from majestrate/dev
...
last changes before 0.6.0 version bump
2019-12-03 15:58:22 -05:00
Stephen Shelton
93b8832026
Merge branch 'dev' into private-keys-backup-support
2019-12-03 11:20:45 -07:00
Jeff
76fc50cfb7
Merge pull request #914 from despair86/dev
...
win32 fixes
2019-12-03 13:08:55 -05:00
Jeff Becker
7d5fd132c8
make format
2019-12-03 12:55:24 -05:00
Rick V
44e8d07d47
fix error msg
2019-12-01 19:01:58 -06:00
Rick V
cf3469e11a
crash on wine, we support linux, ucb_unix, svr4
...
natively ffs. i tested this patch on wine 4.4 on fuckin
Solaris 11 snv_151
2019-12-01 19:01:40 -06:00
Jeff Becker
3c85691f81
limit calls to pumpll such that it gets called fast enough but not too much under load
2019-11-29 19:11:14 -04:00
Jason Rhinelander
740460318a
Die if job queue full
...
If this happens it's a pretty serious error; if someone is hitting it
occassionally it's better to know and update their queue size (and if it
is a runaway situation lokinet doesn't come back anyway).
2019-11-29 19:11:14 -04:00
Jeff Becker
fba1e47d1c
call jobs in logic
2019-11-29 19:11:14 -04:00
Thomas Winget
6d506302dc
Show number of logic thread jobs in debug builds
2019-11-29 19:11:14 -04:00
Jeff Becker
a3a62c34f3
use timer guard for all jobs in debug mode
2019-11-29 19:11:14 -04:00
Jeff Becker
af663d8b10
prune members in timer context
2019-11-29 19:11:14 -04:00
Jeff Becker
11d4760c3d
add metrics tracking for logic jobs in debug mode
2019-11-29 19:11:14 -04:00
Jeff Becker
dd48b149ca
make job queue size configurable
2019-11-25 16:30:34 -05:00
Jeff Becker
853108ce6e
make logic job queue 8 times bigger
2019-11-25 16:15:31 -05:00
Jeff Becker
d44d034775
make contention checker templated
2019-11-22 16:23:19 -05:00
Jeff Becker
1fa0a0aab2
make it compile
2019-11-22 16:23:19 -05:00
Jeff Becker
fdbaaa8188
try fixing file log segfault
2019-11-22 16:23:19 -05:00
Jeff Becker
1188763ece
typo fix in release
2019-11-22 16:23:19 -05:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs
2019-11-22 16:23:19 -05:00
Jeff Becker
eb6d042e73
make sure all calls of logic thread jobs are not having contention
2019-11-22 16:23:18 -05:00
Jeff Becker
d7f09a365d
contention killer
2019-11-22 16:23:18 -05:00
Stephen Shelton
db56e17c23
Rename bencode function for clarity
2019-11-22 14:14:37 -07:00
Stephen Shelton
1666498405
Replace bencode_write_version_entry with a more general-purpose function for writing bencoded dictionary entries
2019-11-22 10:39:35 -07:00
Jason Rhinelander
e0340e86b2
clang-format fixes
2019-11-20 17:45:56 -04:00
Jason Rhinelander
d96d33329b
Merge pull request #912 from majestrate/logic-thread-fix-2019-11-13
...
fix logic thread behavior
2019-11-19 15:26:35 -04:00
Jason Rhinelander
6524563d33
Merge pull request #897 from majestrate/bencode-seek-for-version-2019-11-03
...
seek for version and set it before deserializing
2019-11-19 15:24:07 -04:00
Stephen Shelton
9eed243346
Merge pull request #860 from notlesh/null_mutex_clarity
...
Null mutex clarity (via comments / log statement)
2019-11-19 11:19:44 -07:00
Stephen Shelton
46fe64c2e6
make format (and git commit --amend to re-trigger CI)
2019-11-19 10:07:27 -07:00
Jeff Becker
168d25f244
add warning when trying to queue onto full logic thread
2019-11-14 12:18:20 -05:00
Jeff Becker
f16c9f9b5d
iot seems that logic thread didn't work the way i remember it should
...
make logic work the way it should
2019-11-14 10:06:53 -05:00
Jeff Becker
3c8e148372
prevent double free crap with shared_ptr
2019-11-13 18:16:34 -05:00
Jeff Becker
b589ea96ff
remove printf
2019-11-05 12:00:33 -05:00
Jeff Becker
7ee026fa50
make path builds work again
2019-11-05 11:58:53 -05:00
Jeff Becker
bdb0b847f8
seek for version and set it before deserializing
2019-11-03 10:31:01 -05:00
Stephen Shelton
a3c48e22f3
Even more clarity to NullMutex comments
2019-10-11 13:50:50 -06:00
Stephen Shelton
36ef0954ec
Add comments to NullMutex implementation to express intent
2019-10-10 23:26:55 -06:00
jeff
7d949ebf5d
always use absl for string_view
2019-10-02 11:35:20 -04:00
jeff
605da68e15
use absl optional
2019-10-02 09:17:12 -04:00
jeff
3c1d5518d8
fix windows port and make it compile
2019-10-02 09:06:14 -04:00
jeff
da9437d0cf
don't need that
2019-10-01 11:05:37 -04:00
jeff
32ed821763
Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography
2019-10-01 10:51:28 -04:00
Michael
5f0bb6fbd1
Try to fix windows build
2019-09-24 09:51:54 +01:00
Michael
ae3fc3a395
Add initial macOS app
2019-09-24 09:50:57 +01:00
Jeff Becker
327c545530
finish multithread cryptography first pass
2019-09-16 12:12:05 -04:00
jeff
14c9ef15ed
try calling stuff in logic thread from event loop
2019-09-16 06:21:12 -04:00
jeff
ac2a2aed1d
gut libutp and finish making things compile and pass tests
2019-09-12 14:19:25 -04:00
Jeff Becker
e3bb59707e
more
2019-09-05 17:28:50 -04:00
Michael
19473a291a
Abort when a null mutex is locked from a different thread (in debug mode only)
2019-09-04 22:34:41 +01:00
Jeff Becker
ab64c0d013
Merge remote-tracking branch 'micheal/abort_mutex'
2019-09-04 07:58:48 -04:00
Jeff Becker
1adae338ce
Merge remote-tracking branch 'origin/master'
2019-09-04 07:58:02 -04:00
Michael
23d76e3600
Abort when a null mutex is locked from a different thread (in debug mode only)
2019-09-03 23:25:37 +01:00
Michael
edd0ec398f
Move thread stuff to subdirectory
2019-09-03 20:52:28 +01:00
Michael
0950571313
Move metrics to subdirectory
2019-09-03 20:52:28 +01:00
Michael
4d8fe2a8a8
Move meta programming to subdirectory
2019-09-03 20:52:28 +01:00
Michael
1aec0dfa2b
Move logging to subdirectory
2019-09-03 20:52:27 +01:00
Jeff Becker
c01112e4b7
tracy lock contention testing and other fun things
2019-09-03 11:56:56 -04:00
Rick V
55612bc032
ok use clang-format v8
2019-08-26 03:32:40 -05:00
Rick V
2000826a35
override print
2019-08-26 03:32:40 -05:00
Rick V
50d4b4b40c
fix log colours on old win32 platforms
2019-08-26 03:32:39 -05:00
Michael
094b697b01
Replace StatusObject with underlying JSON type
2019-08-19 10:33:26 +01:00
Michael
16cdfbd5f0
clang-tidy modernize pass
2019-08-12 16:52:58 +01:00
Michael
d1990b5e93
Fix suspicious thread-unsafety
2019-08-08 00:18:56 +01:00
Jeff
10d7e7cb77
Merge branch 'master' into master
2019-08-05 07:59:30 -04:00
Michael
f9e9227e19
Fix gcc trunk warnings
2019-08-02 10:29:08 +01:00
Rick V
8cf5f2c9a5
fix thread naming on windows
2019-08-01 23:42:32 -05:00
Rick V
f6c97091fd
clang-format
2019-08-01 22:25:48 -05:00
Rick V
609a9a1c31
fix netbsd
2019-08-01 21:39:51 -05:00
Rick V
a0a14b97a0
really fix #689 this time
2019-08-01 21:39:50 -05:00