diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2016-10-12 15:49:37 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2016-10-12 15:49:37 +0200 |
commit | 82e2a070e0d2a617cb47c285e176a3fff3ca64e8 (patch) | |
tree | 1244c7b943514a66e6495fceaaf7f198294e6a84 /src | |
parent | edf9eb8181e01f6b2123e5690019cfeeb44fc1c2 (diff) |
Add some functions needed by hydra
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/sync.hh | 8 | ||||
-rw-r--r-- | src/libutil/util.cc | 8 | ||||
-rw-r--r-- | src/libutil/util.hh | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/libutil/sync.hh b/src/libutil/sync.hh index ebe64ffbd..2aa074299 100644 --- a/src/libutil/sync.hh +++ b/src/libutil/sync.hh @@ -54,6 +54,14 @@ public: cv.wait(lk); } + template<class Rep, class Period> + void wait_for(std::condition_variable & cv, + const std::chrono::duration<Rep, Period> & duration) + { + assert(s); + cv.wait_for(lk, duration); + } + template<class Rep, class Period, class Predicate> bool wait_for(std::condition_variable & cv, const std::chrono::duration<Rep, Period> & duration, diff --git a/src/libutil/util.cc b/src/libutil/util.cc index 1f923fe6b..ce16cc30a 100644 --- a/src/libutil/util.cc +++ b/src/libutil/util.cc @@ -778,6 +778,14 @@ void Pid::setKillSignal(int signal) } +pid_t Pid::release() +{ + pid_t p = pid; + pid = -1; + return p; +} + + void killUser(uid_t uid) { debug(format("killing all processes running under uid ‘%1%’") % uid); diff --git a/src/libutil/util.hh b/src/libutil/util.hh index 259c73260..50b96f7ed 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -220,6 +220,7 @@ public: int wait(bool block); void setSeparatePG(bool separatePG); void setKillSignal(int signal); + pid_t release(); }; |