summaryrefslogtreecommitdiff
path: root/src/basic/process-util.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-11-03 15:55:14 +0100
committerLennart Poettering <lennart@poettering.net>2021-11-03 15:57:02 +0100
commit883946f0d2a8d8086749636b729719c22c0c0dba (patch)
treee35cae57b21cdab4f05f56f32ad9c55372691b5b /src/basic/process-util.h
parent2c1612100daae9cef1b71c06ae4c4ec5f9378f09 (diff)
downloadsystemd-883946f0d2a8d8086749636b729719c22c0c0dba.tar.gz
process-util: rework TAKE_PID() to be side-effect free
Diffstat (limited to 'src/basic/process-util.h')
-rw-r--r--src/basic/process-util.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/basic/process-util.h b/src/basic/process-util.h
index c7622c98df..25dea35ce6 100644
--- a/src/basic/process-util.h
+++ b/src/basic/process-util.h
@@ -192,8 +192,9 @@ assert_cc(TASKS_MAX <= (unsigned long) PID_T_MAX);
/* Like TAKE_PTR() but for child PIDs, resetting them to 0 */
#define TAKE_PID(pid) \
({ \
- pid_t _pid_ = (pid); \
- (pid) = 0; \
+ pid_t *_ppid_ = &(pid); \
+ pid_t _pid_ = *_ppid_; \
+ *_ppid_ = 0; \
_pid_; \
})