mirror of
https://github.com/monero-project/monero.git
synced 2025-08-11 20:00:25 -04:00
Merge pull request #4489
00901e9c
epee: initialize a few data members where it seems to be appropriate (moneromooo-monero)144a6c32
abstract_tcp_server2: move m_period to subclass (moneromooo-monero)758d7684
connection_basic: remove unused floating time start time (moneromooo-monero)e5108a29
Catch more exceptions in dtors (moneromooo-monero)
This commit is contained in:
commit
5ccd3d32b4
22 changed files with 53 additions and 17 deletions
|
@ -51,11 +51,19 @@ threadpool::threadpool(unsigned int max_threads) : running(true), active(0) {
|
|||
}
|
||||
|
||||
threadpool::~threadpool() {
|
||||
try
|
||||
{
|
||||
const boost::unique_lock<boost::mutex> lock(mutex);
|
||||
running = false;
|
||||
has_work.notify_all();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// if the lock throws, we're just do it without a lock and hope,
|
||||
// since the alternative is terminate
|
||||
running = false;
|
||||
has_work.notify_all();
|
||||
}
|
||||
for (size_t i = 0; i<threads.size(); i++) {
|
||||
try { threads[i].join(); }
|
||||
catch (...) { /* ignore */ }
|
||||
|
@ -91,11 +99,13 @@ unsigned int threadpool::get_max_concurrency() const {
|
|||
|
||||
threadpool::waiter::~waiter()
|
||||
{
|
||||
try
|
||||
{
|
||||
boost::unique_lock<boost::mutex> lock(mt);
|
||||
if (num)
|
||||
MERROR("wait should have been called before waiter dtor - waiting now");
|
||||
}
|
||||
catch (...) { /* ignore */ }
|
||||
try
|
||||
{
|
||||
wait(NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue