More minor bugfixes

- make pollcat_loop() work as expected with no structs linked, by
  - calling usleep() instead of poll()
  - refactoring delay calculation and reset into pollcat_time_value()
- simplify pollcat_timer_dispatch() in case of slow callbacks
  - deprecate pollcat_timer_dispatch_thresh
- revise tests/timer.c to support two new options:
  - -s to monitor stdin with pollcat_fd_add()
  - -w to use pollcat_loop() instead of handling main-loop separately
- make pollcat_dump() always present in header, since it's always compiled in
- add Makefile rules for installing tests, for easier running on cross-compiled targets
This commit is contained in:
2025-09-18 13:28:27 -07:00
parent c7729ca9b6
commit d0dd5f7a4a
8 changed files with 143 additions and 90 deletions

View File

@@ -28,8 +28,9 @@
typedef uint64_t pollcat_time_t;
/** Grace period in milliseconds for late timers, set to 0 for exact match */
extern pollcat_time_t pollcat_timer_dispatch_thresh;
/** This was removed and replaced with a simpler implementation which allowed slow/late
* timers to run reliably. Setting it now has no effect. */
extern pollcat_time_t pollcat_timer_dispatch_thresh __attribute__((deprecated));
/** Maximum number of times to run the dispatch loop, set to -1 for no limit */