Skip to content

Expose runtime apis #248

@NthTensor

Description

@NthTensor

Expose more runtime internals so that users can implement custom synchronization APIs.

As an example, take atomic-wait. This crate provides a futuex-like api for all modern operating systems, and has a few million recent downloads on crates.io. Unfortunately, testing code that uses this crate is difficult with shuttle. While it is possible to replicate something like the functionality of a futex using a mutex and condvar, I don't think the runtime ordering effects are exactly identical. I'd prefer to be able to implement the futex functionality myself with thread::switch and similar, so I can be confident that my tests are modeling the actual semantics of my synchronization primitives.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions