face: Fixing a small bug with Face::shutdown
Face::shutdown did not properly shutdown the Face (io_service) when
"always block" mode was used (Face::processEvents(..., true);)
Change-Id: I6bedcf2b45be1506e6b4a94759d1b5168e107252
diff --git a/src/face.cpp b/src/face.cpp
index 22728d1..9f52acd 100644
--- a/src/face.cpp
+++ b/src/face.cpp
@@ -338,10 +338,12 @@
catch (Face::ProcessEventsTimeout&)
{
// break
+ m_impl->m_ioServiceWork.reset();
m_ioService->reset();
}
catch (std::exception&)
{
+ m_impl->m_ioServiceWork.reset();
m_ioService->reset();
m_impl->m_pendingInterestTable.clear();
m_impl->m_registeredPrefixTable.clear();
@@ -367,6 +369,8 @@
m_impl->m_pitTimeoutCheckTimer->cancel();
m_impl->m_processEventsTimeoutTimer->cancel();
m_impl->m_pitTimeoutCheckTimerActive = false;
+
+ m_impl->m_ioServiceWork.reset();
}
void