From 8ca3b7f8e55db315bfac50aaa7aca11bc01e9907 Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Wed, 9 Oct 2013 10:18:14 +0400 Subject: [PATCH] [PROTO] Add pid to MSG_TERMINATE Change-Id: Ieace9f61cac0e6ba4ccd1ad995a10fe2d4f8eefb Signed-off-by: Dmitry Bogatov --- daemon/daemon.h | 2 +- daemon/threads.c | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/daemon/daemon.h b/daemon/daemon.h index 7617d7b..044dbbe 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -173,7 +173,7 @@ typedef struct { uint64_t starttime; // written only by recv thread int64_t allocmem; // written only by recv thread - int pid; // written only by recv thread + pid_t pid; // written only by recv thread int socket; // written only by main thread pthread_t recv_thread; // written only by main thread int event_fd; // for thread communication (from recv thread to main thread) diff --git a/daemon/threads.c b/daemon/threads.c index 34da134..f554e7f 100644 --- a/daemon/threads.c +++ b/daemon/threads.c @@ -148,18 +148,16 @@ static void* recvThread(void* data) { // send stop message to main thread event = EVENT_STOP; - write(manager.target[index].event_fd, &event, sizeof(uint64_t)); - - struct timeval tv; - gettimeofday(&tv, NULL); - struct msg_data_t msg = { - .id = NMSG_TERMINATE, - .seq_num = 0, - .sec = tv.tv_sec, - .nsec = tv.tv_usec * 1000, - .len = 0 - }; - write_to_buf(&msg); + write(manager.target[index].event_fd, &event, + sizeof(uint64_t)); + + struct msg_data_t *msg = malloc(sizeof(*msg) + /* pid */ + sizeof(uint32_t)); + fill_data_msg_head(msg, NMSG_TERMINATE, 0, + sizeof(uint32_t)); + *(uint32_t *) msg->payload = (uint32_t) manager.target[index].pid; + write_to_buf(msg); + free(msg); break; } else if(log.type == MSG_MSG) -- 2.7.4