mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 14:05:33 +00:00
[5090] Applied propose fix by stopping the IO service on run exists
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
|
||||
// Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
|
||||
//
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@@ -31,15 +31,20 @@ void
|
||||
CtrlAgentProcess::run() {
|
||||
LOG_INFO(agent_logger, CTRL_AGENT_STARTED).arg(VERSION);
|
||||
|
||||
while (!shouldShutdown()) {
|
||||
try {
|
||||
try {
|
||||
while (!shouldShutdown()) {
|
||||
getIoService()->run_one();
|
||||
|
||||
} catch (const std::exception& ex) {
|
||||
LOG_FATAL(agent_logger, CTRL_AGENT_FAILED).arg(ex.what());
|
||||
isc_throw(DProcessBaseError,
|
||||
"Process run method failed: " << ex.what());
|
||||
}
|
||||
stopIOService();
|
||||
} catch (const std::exception& ex) {
|
||||
LOG_FATAL(agent_logger, CTRL_AGENT_FAILED).arg(ex.what());
|
||||
try {
|
||||
stopIOService();
|
||||
} catch (...) {
|
||||
// Ignore double errors
|
||||
}
|
||||
isc_throw(DProcessBaseError,
|
||||
"Process run method failed: " << ex.what());
|
||||
}
|
||||
|
||||
LOG_DEBUG(agent_logger, DBGLVL_START_SHUT, CTRL_AGENT_RUN_EXIT);
|
||||
|
Reference in New Issue
Block a user