Skip to content

macOS API calls must be thread safe #152

@tresf

Description

@tresf

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions