You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@heron.apache.org by nw...@apache.org on 2019/03/11 23:41:00 UTC
[incubator-heron] branch master updated: EventLoop Signal Handler
(#3212)
This is an automated email from the ASF dual-hosted git repository.
nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git
The following commit(s) were added to refs/heads/master by this push:
new 2bfe579 EventLoop Signal Handler (#3212)
2bfe579 is described below
commit 2bfe579dd3f16871fd42aa23c3800fa13576d71f
Author: Xiaoyao Qian <qi...@illinois.edu>
AuthorDate: Mon Mar 11 16:40:54 2019 -0700
EventLoop Signal Handler (#3212)
---
heron/common/src/cpp/network/event_loop_impl.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/heron/common/src/cpp/network/event_loop_impl.cpp b/heron/common/src/cpp/network/event_loop_impl.cpp
index c37fc7e..b7de06d 100644
--- a/heron/common/src/cpp/network/event_loop_impl.cpp
+++ b/heron/common/src/cpp/network/event_loop_impl.cpp
@@ -76,7 +76,14 @@ EventLoopImpl::~EventLoopImpl() {
event_base_free(mDispatcher);
}
+static void handleTerm(evutil_socket_t _, sp_int16 what, void* ctx) {
+ struct event_base *evb = (struct event_base*) ctx;
+ event_base_loopbreak(evb);
+}
+
void EventLoopImpl::loop() {
+ struct event *term = evsignal_new(mDispatcher, SIGTERM, handleTerm, mDispatcher);
+ event_add(term, NULL);
// This never returns
event_base_dispatch(mDispatcher);
}