From 1ca3d027dee0c693265a2d4519ee6c7ebef6fd1c Mon Sep 17 00:00:00 2001 From: "Dmitrij D. Czarkoff" Date: Wed, 30 Dec 2015 17:44:48 +0100 Subject: Reduce amount of stat(2) calls Add 8-bit variable that is passed to imv_navigator_poll_changed(). Decrement it on each run of main loop. When it gets to 0, call stat(2). --- src/navigator.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/navigator.c') diff --git a/src/navigator.c b/src/navigator.c index c504cd8..fb2a3cd 100644 --- a/src/navigator.c +++ b/src/navigator.c @@ -210,19 +210,22 @@ int imv_navigator_find_path(struct imv_navigator *nav, const char *path) return -1; } -int imv_navigator_poll_changed(struct imv_navigator *nav) +int imv_navigator_poll_changed(struct imv_navigator *nav, const int nopoll) { if(nav->changed) { nav->changed = 0; return 1; - } else { + } + + if(!nopoll) { struct stat file_info; - if (stat(nav->paths[nav->cur_path], &file_info) == -1) + if(stat(nav->paths[nav->cur_path], &file_info) == -1) { return 0; - if (nav->mtimes[nav->cur_path] != file_info.st_mtim.tv_sec) { + } + if(nav->mtimes[nav->cur_path] != file_info.st_mtim.tv_sec) { nav->mtimes[nav->cur_path] = file_info.st_mtim.tv_sec; return 1; } - return 0; } + return 0; } -- cgit v1.2.3