Sustained-absence window (seconds) before a missing root may be pruned. * Generous default: 10 minutes. Override with CBM_WATCHER_PRUNE_GRACE_S * (>= 0; 0 prunes as soon as the missing-poll streak is reached). Read on * each call so tests/operators can adjust via setenv without a restart — * same convention as cbm_max_file_bytes in limits.c. */
| 901 | * each call so tests/operators can adjust via setenv without a restart — |
| 902 | * same convention as cbm_max_file_bytes in limits.c. */ |
| 903 | static long prune_grace_s(void) { |
| 904 | const char *raw = getenv("CBM_WATCHER_PRUNE_GRACE_S"); |
| 905 | if (raw && raw[0]) { |
| 906 | errno = 0; |
| 907 | char *end = NULL; |
| 908 | long v = strtol(raw, &end, 10); |
| 909 | if (errno == 0 && end != raw && *end == '\0' && v >= 0) { |
| 910 | return v; |
| 911 | } |
| 912 | /* Unparseable / negative → fall through to the safe default. */ |
| 913 | } |
| 914 | return PRUNE_GRACE_DEFAULT_S; |
| 915 | } |
| 916 | |
| 917 | /* Format int to string for logging (poll thread only, one use per call). */ |
| 918 | static const char *itoa_buf(int v) { |
no outgoing calls
no test coverage detected