mirror of
https://github.com/wolfcw/libfaketime.git
synced 2026-05-17 00:26:16 +03:00
Reset shared memory when start time is reset
This commit is contained in:
@@ -710,6 +710,25 @@ static void next_time(struct timespec *tp, struct timespec *ticklen)
|
||||
}
|
||||
}
|
||||
|
||||
static void reset_time()
|
||||
{
|
||||
system_time_from_system(&ftpl_starttime);
|
||||
if (shared_sem != NULL)
|
||||
{
|
||||
if (sem_wait(shared_sem) == -1)
|
||||
{
|
||||
perror("libfaketime: In reset_time(), sem_wait failed");
|
||||
exit(1);
|
||||
}
|
||||
ft_shared->start_time = ftpl_starttime;
|
||||
if (sem_post(shared_sem) == -1)
|
||||
{
|
||||
perror("libfaketime: In reset_time(), sem_post failed");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* =======================================================================
|
||||
@@ -2533,7 +2552,7 @@ static void parse_ft_string(const char *user_faked_time)
|
||||
|
||||
/* Reset starttime */
|
||||
if (NULL == getenv("FAKETIME_DONT_RESET"))
|
||||
system_time_from_system(&ftpl_starttime);
|
||||
reset_time();
|
||||
goto parse_modifiers;
|
||||
break;
|
||||
|
||||
@@ -2561,7 +2580,7 @@ static void parse_ft_string(const char *user_faked_time)
|
||||
}
|
||||
}
|
||||
if (NULL == getenv("FAKETIME_DONT_RESET"))
|
||||
system_time_from_system(&ftpl_starttime);
|
||||
reset_time();
|
||||
goto parse_modifiers;
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user