chiark / gitweb /
util: simplify column caching logic
[elogind.git] / src / cgtop / cgtop.c
index a57a468b2cb194df0aba90a17575e07f6e886fde..ee421e383b2eec9e2314a006d79daee71033a32a 100644 (file)
@@ -300,7 +300,7 @@ static int refresh_one(
 
         r = cg_enumerate_subgroups(controller, path, &d);
         if (r < 0) {
-                if (r == ENOENT)
+                if (r == -ENOENT)
                         return 0;
 
                 return r;
@@ -447,7 +447,7 @@ static int display(Hashmap *a) {
         if (rows <= 0)
                 rows = 25;
 
-        path_columns = columns_uncached() - 42;
+        path_columns = columns() - 42;
         if (path_columns < 10)
                 path_columns = 10;
 
@@ -653,6 +653,8 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
+        signal(SIGWINCH, columns_cache_reset);
+
         while (!quit) {
                 Hashmap *c;
                 usec_t t;
@@ -782,5 +784,10 @@ finish:
         group_hashmap_free(a);
         group_hashmap_free(b);
 
-        return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+        if (r < 0) {
+                log_error("Exiting with failure: %s", strerror(-r));
+                return EXIT_FAILURE;
+        }
+
+        return EXIT_SUCCESS;
 }