Threded access to the USB stack

Hi all,

I have a question regarding threads and the QNX USB stack. In our project we
have several USB devices that connect to a single USB host. Our USB driver
takes care of the insert callbacks, at this point is checks the devices
descriptors to see if the device should be handled by this driver, if it
should a thread is spawned (with tfork()) and is passed the USB devices
handle. This thread then starts to poll several interrupt pipes of the USB
device.

This all works fine with only one USB device, but with two USB devices the
devu-ohci stack crashes once the two threads are started. I have tried with
UHCI hardware as well with the same result.

So my question is this, is it at all possible to use the QNX USB stack like
this (from two different threads issueing usb calls simulaneously , while
the insert callback is handled by a parent thread) ?

And if it is not, then why are all the USB functions listed as thread safe ?

If it matters we’re running QNX 4.25…

Any help would be greately appreciated!

regards
/Markus