Hi Nevil, 2006/3/6, Nevil Thatcher <[EMAIL PROTECTED]>: > Hi Arnaud, > > I have been playing around with the blocking at 'waiting for Notifications' > > What I have found is that the process will block at the read() statement in > usb_interrupt_read() function in libusb (bsd.c). > > It seems to sit here indefinitely (have left it overnight). > By unplugging/replugging the USB cable causes an error return from the > read() statement, thus the function returns and status's are then received > via the usb_control_msgs's. Subsequent calls's to usb_interrupt_read then > also fail with the message "Failedto read form interrupt endpoint" > > In the call to usb_interrupt_read there is a timeout argument (5 sec). I am > not sure if this means that the read is supposed to timeout after 5 sec if > no data but this is not happenening.
yes, that should be its behaviour. So there is something wrong with the timeout management. When adding the O_NONBLOCK flag, does it return approx 5 sec. later? If so that would mean that O_NONBLOCK is needed. > Waiting for notifications... > usb_interrupt_read 4 129 0x7f7fffffeb10 20 5000 > usb_interrupt_read Calling read > usb_interrupt_read result=-1, size=20, retrieved=0 > USB error: error reading from interrupt endpoint /dev/ugen1.01: Resource > temporarily unavailable there is however an issue. You should report both to the netBSD kernel hackers (the ugen one(s) in fact) and the libusb team if not already done. Arnaud _______________________________________________ Nut-upsuser mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/nut-upsuser

