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).
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, butdoes not deadlock. Alternatively,
uses = { export = [std:eval-id <| make-module $args] }also avoids the deadlock.Interestingly, adjusting the scopes of variables within
make-modulecan induce the deadlock even with these changes, which makes me think the problem is in the hypotheticalmake-module(which I have not been able to make a minimal reproduction for).