Per hidapi, macOS HID API calls MUST be executed on the same thread to be safe:
Currently, separate threads interacting with a HID devices on macOS, the entire JVM will crash. This can actually be caused by same-thread execution due to this automatic shutdown hook.
|
if (hidServicesSpecification.isAutoShutdown()) { |
|
// Ensure we release resources during shutdown |
|
Runtime.getRuntime().addShutdownHook( |
|
new Thread() { |
|
@Override |
|
public void run() { |
|
shutdown(); |
|
} |
|
}); |
|
} |
Despite this being an upstream issue, Java has some ways of thread pooling so that we can manage this downstream until upstream has a permanent fix.
@Vzor- will be submitting a PR which references this issue with a proposed downstream threading solution.
Per
hidapi, macOS HID API calls MUST be executed on the same thread to be safe:Currently, separate threads interacting with a HID devices on macOS, the entire JVM will crash. This can actually be caused by same-thread execution due to this automatic shutdown hook.
hid4java/src/main/java/org/hid4java/HidServices.java
Lines 90 to 99 in 672f0a7
Despite this being an upstream issue, Java has some ways of thread pooling so that we can manage this downstream until upstream has a permanent fix.
@Vzor- will be submitting a PR which references this issue with a proposed downstream threading solution.