Skip to content

Interpreter<H> isn't safely Send or Sync because of dyn RegionHandler #301

@martin-hughes

Description

@martin-hughes

The lines

unsafe impl<H> Send for Interpreter<H> where H: Handler + Send {}
unsafe impl<H> Sync for Interpreter<H> where H: Handler + Send {}

aren't true because dyn RegionHandler might not be Send/Sync.

I can see that facs is safe to declare Send or Sync because only the global_lock field is actually used.

I'm sure there's some generic-types magic to resolve this. Alternatively it might be desirable to constrain the RegionHandlers to be Send + Sync, but that'd technically be a breaking API change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions