Skip to content

macOS API calls must be thread safe #152

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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