co2minimon

Get temperature and CO2 concentration data from a CO2Mini sensor.
Log | Files | Refs | README | LICENSE

commit 6983af71648475f0e6d87ddc031e5238e811b748
parent dc3a1dbe09898be7c56ab5b11a0c61ef2cb98734
Author: Amin Mesbah <dev@aminmesbah.com>
Date:   Sat, 28 May 2022 22:39:07 -0700

Fix select() timeout after hibernate

`select()` was timing out unceasingly after resume from system
hibernation. Setting the fd_set right before calling `select()` fixes
that.

Diffstat:
Mmain.c | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/main.c b/main.c @@ -53,7 +53,6 @@ int main(void) bool error_occurred = false; int device_handle = -1; bool need_send_feature_report = true; - fd_set read_fds; while (running) { @@ -80,8 +79,6 @@ int main(void) goto error; } - FD_ZERO(&read_fds); - FD_SET(device_handle, &read_fds); need_send_feature_report = true; } @@ -96,6 +93,9 @@ int main(void) need_send_feature_report = false; } + fd_set read_fds; + FD_ZERO(&read_fds); + FD_SET(device_handle, &read_fds); errno = 0; int ready = select(device_handle + 1, &read_fds, NULL, NULL, &(struct timeval){ .tv_sec = 15 }); if (ready == -1 && errno != EINTR)