Skip to content

Revise.revise(...) is not safe to be called from multiple threads simultaneously #845

@frankier

Description

@frankier

Revise.revise(...) appears to not be threadsafe. Typically it is only run from a single thread, and only ever one-at-a-time, e.g. in the REPL. However, it is possible it could be called from multiple threads (e.g. in a webserver). In this case, the reading and writing of the global revision_queue without locks could cause inconsistent/corrupt reads (build-in data structures are not threadsafe). As a secondary problem, there is a thundering herd issue where work could be duplicated between Revise passes started at the same time.

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