aboutsummaryrefslogtreecommitdiff
path: root/src/multiprocessing.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-09-27 13:24:10 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-09-27 16:02:19 -0400
commit9f535ba4e016f02c6d1bca45d6adfd04a036c9c1 (patch)
tree2c92cc05d1ef80669f32dc7c5a7769c50d83514b /src/multiprocessing.c
parent108242ce16fc7d7d9e81a1a6e9783fd9bda8b60c (diff)
downloadstasis-9f535ba4e016f02c6d1bca45d6adfd04a036c9c1.tar.gz
Fix missing COMMAND string in the log header
Diffstat (limited to 'src/multiprocessing.c')
-rw-r--r--src/multiprocessing.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/multiprocessing.c b/src/multiprocessing.c
index 5d22901..1320a2a 100644
--- a/src/multiprocessing.c
+++ b/src/multiprocessing.c
@@ -138,6 +138,11 @@ struct MultiProcessingTask *mp_pool_task(struct MultiProcessingPool *pool, const
fflush(tp);
fclose(tp);
+ // Record the command(s)
+ slot->cmd_len = (strlen(cmd) * sizeof(*cmd)) + 1;
+ slot->cmd = mmap(NULL, slot->cmd_len, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
+ memset(slot->cmd, 0, slot->cmd_len);
+ strncpy(slot->cmd, cmd, slot->cmd_len);
return slot;
}
@@ -419,6 +424,11 @@ void mp_pool_free(struct MultiProcessingPool **pool) {
}
// Unmap all pool tasks
if ((*pool)->task) {
+ if ((*pool)->task->cmd) {
+ if (munmap((*pool)->task->cmd, (*pool)->task->cmd_len) < 0) {
+ perror("munmap");
+ }
+ }
if (munmap((*pool)->task, sizeof(*(*pool)->task) * (*pool)->num_alloc) < 0) {
perror("munmap");
}