diff --git a/server/src/bin/lesavka-uvc.rs b/server/src/bin/lesavka-uvc.rs index 99606f9..b51b8c1 100644 --- a/server/src/bin/lesavka-uvc.rs +++ b/server/src/bin/lesavka-uvc.rs @@ -120,6 +120,8 @@ fn main() -> Result<()> { ); let debug = env::var("LESAVKA_UVC_DEBUG").is_ok(); + let nonblock = env::var("LESAVKA_UVC_BLOCKING").is_err(); + eprintln!("[lesavka-uvc] nonblock={}", if nonblock { 1 } else { 0 }); let mut setup_seen: u64 = 0; let mut data_seen: u64 = 0; let mut dq_err_seen: u64 = 0; @@ -302,10 +304,11 @@ fn read_interface(path: &str) -> Option { } fn open_with_retry(path: &str) -> Result { + let nonblock = env::var("LESAVKA_UVC_BLOCKING").is_err(); for attempt in 1..=200 { let mut opts = OpenOptions::new(); opts.read(true).write(true); - if env::var("LESAVKA_UVC_NONBLOCK").is_ok() { + if nonblock { opts.custom_flags(libc::O_NONBLOCK); } match opts.open(path) {