From 66f014d09861237d593f8906b350baf8033a1ea4 Mon Sep 17 00:00:00 2001 From: Kirill Tkhai Date: Mon, 26 Dec 2016 17:24:44 +0300 Subject: [PATCH] pstree: Add task_st bit field (was "files: Wait transport_fd before sending a fd to peer" and "pstree: Add task_st futex") We are going to move to the the single per-task bit field for notifications about file opening events. Introduce pstree_item::task_st for that. v5: Add FDS_EVENT_BIT description. v2: Do not wait until a peer's socket is created as it's guarantied by we create it before CR_STATE_FORKING. travis-ci: success for Rework file opening scheme to make it asynchronous (rev5) Signed-off-by: Kirill Tkhai Signed-off-by: Pavel Emelyanov --- criu/include/pstree.h | 7 +++++++ criu/pstree.c | 1 + 2 files changed, 8 insertions(+) diff --git a/criu/include/pstree.h b/criu/include/pstree.h index 55615fffc..880c926ad 100644 --- a/criu/include/pstree.h +++ b/criu/include/pstree.h @@ -2,6 +2,7 @@ #define __CR_PSTREE_H__ #include "common/list.h" +#include "common/lock.h" #include "pid.h" #include "images/core.pb-c.h" @@ -24,8 +25,14 @@ struct pstree_item { struct pid *threads; /* array of threads */ CoreEntry **core; TaskKobjIdsEntry *ids; + futex_t task_st; }; +enum { + FDS_EVENT_BIT = 0, +}; +#define FDS_EVENT (1 << FDS_EVENT_BIT) + struct pstree_item *current; struct rst_info; diff --git a/criu/pstree.c b/criu/pstree.c index 7d57d09ab..4711ff948 100644 --- a/criu/pstree.c +++ b/criu/pstree.c @@ -219,6 +219,7 @@ struct pstree_item *__alloc_pstree_item(bool rst) item->pid->real = -1; item->born_sid = -1; item->pid->item = item; + futex_init(&item->task_st); return item; }