From: Razvan Becheriu Date: Wed, 4 Sep 2019 15:09:27 +0000 (+0300) Subject: updated multi-thread packet processing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c2a1f3fa32049caf971649312225a41bdbd3db4;p=thirdparty%2Fkea.git updated multi-thread packet processing --- diff --git a/src/bin/dhcp4/ctrl_dhcp4_srv.cc b/src/bin/dhcp4/ctrl_dhcp4_srv.cc index 19e172b4d2..59151338c7 100644 --- a/src/bin/dhcp4/ctrl_dhcp4_srv.cc +++ b/src/bin/dhcp4/ctrl_dhcp4_srv.cc @@ -944,7 +944,6 @@ ControlledDhcpv4Srv::~ControlledDhcpv4Srv() { CommandMgr::instance().deregisterCommand("config-get"); CommandMgr::instance().deregisterCommand("config-set"); CommandMgr::instance().deregisterCommand("config-reload"); - CommandMgr::instance().deregisterCommand("config-set"); CommandMgr::instance().deregisterCommand("config-test"); CommandMgr::instance().deregisterCommand("config-write"); CommandMgr::instance().deregisterCommand("dhcp-disable"); diff --git a/src/bin/dhcp4/dhcp4_srv.h b/src/bin/dhcp4/dhcp4_srv.h index 3bd088c512..f8ee92c9bf 100644 --- a/src/bin/dhcp4/dhcp4_srv.h +++ b/src/bin/dhcp4/dhcp4_srv.h @@ -1013,6 +1013,7 @@ protected: /// UDP port number on which server listens. uint16_t server_port_; +protected: /// UDP port number to which server sends all responses. uint16_t client_port_; diff --git a/src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc b/src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc index ea508213d3..e48efdb24b 100644 --- a/src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc +++ b/src/bin/dhcp6/tests/ctrl_dhcp6_srv_unittest.cc @@ -34,6 +34,10 @@ #include #include +#include +#include +#include + using namespace std; using namespace isc; using namespace isc::asiolink; diff --git a/src/lib/util/threads/lock_guard.h b/src/lib/util/threads/lock_guard.h new file mode 100644 index 0000000000..6c949a29f6 --- /dev/null +++ b/src/lib/util/threads/lock_guard.h @@ -0,0 +1,39 @@ +#ifndef LOCK_GUARD_H +#define LOCK_GUARD_H + +#include + +namespace isc { +namespace util { +namespace thread { + +template +class LockGuard { +public: + LockGuard(Lock* lock) : lk_(lock) { + if (lk_) { + lk_->lock(); + } + } + + ~LockGuard() { + if (lk_) { + lk_->unlock(); + } + } + + LockGuard(const LockGuard&) = delete; + LockGuard& operator=(const LockGuard&) = delete; + + LockGuard(LockGuard&&) = delete; + LockGuard& operator=(LockGuard&&) = delete; + +private: + Lock* lk_; +}; + +} // namespace thread +} // namespace util +} // namespace isc + +#endif // LOCK_GUARD_H