Skip to content

Modules are sensitive to deadlock #2

@calebzulawski

Description

@calebzulawski

I have a complex example of a function that returns a module, used by another module, results in a deadlock.

uses = { export = [make-module $args] } deadlocks, but

c++:Module :mod = make-module $args
...
uses = { export = [$mod] }

does not deadlock. Alternatively, uses = { export = [std:eval-id <| make-module $args] } also avoids the deadlock.

Interestingly, adjusting the scopes of variables within make-module can induce the deadlock even with these changes, which makes me think the problem is in the hypothetical make-module (which I have not been able to make a minimal reproduction for).

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