What is the thread safety status of the IOBluetooth framework?

[Q] What is the thread safety status of the IOBluetooth framework?

Is it possible call any class from the IOBluetooth framework from a secondary thread?

I haven't found so far information about this in the documentation and the only pieces of info you can find through a google search say the framework is not thread safe but these are old pieces of info.

Replies

IOBluetooth is not, and never been thread safe. Everything needs to be handled in the main thread.

Thanks.

When you write: "Everything needs to be handled in the main thread", does that mean that the calls absolutely need to be on the main thread? Or is it possible to use the Bluetooth API from secondary threads as long as one adds a locking mechanism around those calls?

I'd also be interested to get this clarified... If I spawn a background thread and set it up to run its own runloop, can I then use IOBluetooth from that thread (submitting all the method invocations via its runloop)? Or will IOBluetooth still refer to main thread for what it does?