Split service cleanup in two parts to prevent std::terminate 74/110474/3
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 16 Jan 2017 15:37:44 +0000 (16:37 +0100)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 17 Jan 2017 07:21:58 +0000 (08:21 +0100)
commitbe1210db31d8a4586c5791da2157be21a789d1ec
tree72c6489c98d7e0b3e4df97223bf0b2c727150df7
parent2ef0a6b3539db53aefda50110d5a6eecd4e04188
Split service cleanup in two parts to prevent std::terminate

If ServiceThread is being destroyed and it's about to process an event (the
service thread popped an event from m_eventQueue) it may lead to calling a
virtual function on a partially destroyed object.

Thread cleanup has been separated from ServiceThread destructor to avoid such
situations.

Change-Id: I31f08d18a72b597002063619bd2e84a5a1da0899
src/server/main/include/generic-socket-manager.h
src/server/main/include/service-thread.h
src/server/main/server-main.cpp
src/server/main/socket-manager.cpp
src/server/service/base-service.cpp
src/server/service/include/base-service.h