Commit Graph

17 Commits

Author SHA1 Message Date
Jonathan "Duke" Leto
5d2307a709 Update copyrights to 2022 2022-09-19 15:45:30 -07:00
Duke Leto
c6e5b07a59 You might be a king or a little street zsweeper, but sooner or later you will dance with the reaper 2022-08-24 23:38:19 -04:00
Duke Leto
be16f80abc Hush Full Node is now GPLv3
Any projects which want to use Hush code from now on will need to be licensed as
GPLv3 or we will send the lawyers: https://www.softwarefreedom.org/

Notably, Komodo (KMD) is licensed as GPLv2 and is no longer compatible to receive
code changes, without causing legal issues. MIT projects, such as Zcash, also cannot pull
in changes from the Hush Full Node without permission from The Hush Developers,
which may in some circumstances grant an MIT license on a case-by-case basis.
2020-10-21 07:28:10 -04:00
Duke Leto
a7f88a87aa Update copyright URL to be https 2020-09-20 13:17:38 -04:00
DenioD
2075d0da25 Port scheduler race condition fix from BTC upstream #133, 12519bf62b 2020-09-12 10:01:33 +02:00
jl777
6f78003c0e -debug 2019-04-11 23:29:20 -11:00
jl777
29d5c46bcd Sleep 2019-04-11 23:22:25 -11:00
jl777
6d134de514 +print 2019-04-11 23:20:13 -11:00
jl777
0ea9ae3c05 Update copyright to 2019 2018-12-31 21:41:05 -11:00
syd
c72a4732cc Remove Boost conditional compilation.
Boost is currently at version 106200 in the depends subsystem
so it is safe to remove code the refers to earlier versions.

This closes #2445
2017-11-23 00:05:21 -05:00
Casey Rodarmor
6b51b9b195 Replace boost::reverse_lock with our own. 2015-09-22 00:43:13 +00:00
Casey Rodarmor
626c5e6936 Make sure we re-acquire lock if a task throws 2015-09-22 00:43:13 +00:00
Cory Fields
ef1d506054 Fix scheduler build with some boost versions.
Some boost versions have a conflicting overload of wait_until that returns void.
Explicitly use a template here to avoid hitting that overload.

Github-Pull: #6285
Rebased-From: 72bf90d770ce5b2653fd482928646cd6a9f5f6d7
2015-06-16 13:57:21 +02:00
Wladimir J. van der Laan
bdcf5dea7c Fix intermittent hang issue in scheduler_tests
Don't clear `stopRequested` and `stopWhenEmpty` at the top of
`serviceQueue`, as this results in a race condition: on systems under
heavy load, some of the threads only get scheduled on the CPU when the
other threads have already finished their work. This causes the flags to
be cleared post-hoc and thus those threads to wait forever.

The potential drawback of this change is that the scheduler cannot be
restarted after being stopped (an explicit reset would be needed), but
we don't use this functionality anyway.
2015-05-21 19:07:10 +02:00
Gavin Andresen
f50105486f More robust CScheduler unit test
On a busy or slow system, the CScheduler unit test could fail because it
assumed all threads would be done after a couple of milliseconds.

Replace the hard-coded sleep with CScheduler stop() method that
will cleanly exit the servicing threads when all tasks are completely
finished.
2015-05-16 17:59:23 -04:00
Cory Fields
cfefe5b88c scheduler: fix with boost <= 1.50 2015-05-14 10:37:19 -04:00
Gavin Andresen
928b950e3b CScheduler class for lightweight task scheduling
Simple class to manage a task queue that is serviced by one or
more threads.
2015-05-14 10:37:19 -04:00