Currently, if using VCP and trying to write, but no one is consuming the data on the other side, there is a timeout and it can take block, particularly when using printf (which isn't a huge problem as printf is only for debugging). There is also a barely-noticeable delay when using the VCP::write() method.
It seems that it is the fault of the following USB_TIMEOUT code:
It would be better if there was a way to say "If the host USB device is not ready to consume data, don't even try and send." Although I'm not sure if there is an easy way to know that (but I feel like there should be).
Currently, if using VCP and trying to write, but no one is consuming the data on the other side, there is a timeout and it can take block, particularly when using
printf
(which isn't a huge problem asprintf
is only for debugging). There is also a barely-noticeable delay when using theVCP::write()
method.It seems that it is the fault of the following
USB_TIMEOUT
code:It would be better if there was a way to say "If the host USB device is not ready to consume data, don't even try and send." Although I'm not sure if there is an easy way to know that (but I feel like there should be).