mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
timer: Refine itimer_armed logic and improve timer value handling
Right now, CRIU skips timers non-periodic timers. This change addresses this issue. Signed-off-by: Austin Kuo <hsuanchikuo@gmail.com>
This commit is contained in:
parent
aad66a4f7c
commit
09dc2e9584
2 changed files with 2 additions and 2 deletions
|
|
@ -2226,7 +2226,7 @@ __visible long __export_restore_task(struct task_restore_args *args)
|
|||
* code below doesn't fail due to bad timing values.
|
||||
*/
|
||||
|
||||
#define itimer_armed(args, i) (args->itimers[i].it_interval.tv_sec || args->itimers[i].it_interval.tv_usec)
|
||||
#define itimer_armed(args, i) (args->itimers[i].it_value.tv_sec || args->itimers[i].it_value.tv_usec)
|
||||
|
||||
if (itimer_armed(args, 0))
|
||||
sys_setitimer(ITIMER_REAL, &args->itimers[0], NULL);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ static inline int timeval_valid(struct timeval *tv)
|
|||
|
||||
static inline int decode_itimer(char *n, ItimerEntry *ie, struct itimerval *val)
|
||||
{
|
||||
if (ie->isec == 0 && ie->iusec == 0) {
|
||||
if (ie->isec == 0 && ie->iusec == 0 && ie->vsec == 0 && ie->vusec == 0) {
|
||||
memzero_p(val);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue