X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=task-utils.c;h=12b00027a2bae479f130252b501cd1dfd5104727;hb=6e43cc2e97aee62dec65c073143e38f3f8cafae8;hp=768be946d12406efd7f4f0f6d15308335aed98dc;hpb=f156337dc8e5a11b6bd5492e6820ed3c455fc0e5;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/task-utils.c b/task-utils.c index 768be94..12b0002 100644 --- a/task-utils.c +++ b/task-utils.c @@ -51,7 +51,7 @@ int task_start(struct task_info *info) info->private_data); if (ret) - info->id = -1; + info->id = 0; return ret; } @@ -64,7 +64,7 @@ void task_stop(struct task_info *info) if (info->id > 0) { pthread_cancel(info->id); pthread_join(info->id, NULL); - info->id = -1; + info->id = 0; } if (info->periodic.timer_fd) { @@ -94,8 +94,10 @@ int task_period_start(struct task_info *info, unsigned int period_ms) return -1; info->periodic.timer_fd = timerfd_create(CLOCK_MONOTONIC, 0); - if (info->periodic.timer_fd == -1) + if (info->periodic.timer_fd == -1) { + info->periodic.timer_fd = 0; return info->periodic.timer_fd; + } info->periodic.wakeups_missed = 0; @@ -117,6 +119,9 @@ void task_period_wait(struct task_info *info) if (!info) return; + if (info->periodic.timer_fd == 0) + return; + ret = read(info->periodic.timer_fd, &missed, sizeof (missed)); if (ret == -1) return;