haskell / haskell/terminfo

Workaround for getCapability unsafe behavior?

Open
#47 9 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
12
Forks
13
PR merge metrics
No merged PRs in 30d

Description

Greetings!

I believe I am experiencing some nondeterminism in `brick` and `vty` due to the fact that this library's `getCapability` call uses `unsafePerformIO`. The result of `getCapability` seems to be nondeterministic and occasionally results in program runs with bad terminal configurations.

Would a version `getCapabilityIO :: ... -> IO (Maybe a)` help, or is the problem deeper? I don't see a way to get capabilities without going through `getCapability`. I'd be happy to write a patch to add an `IO`-friendly version, but I don't know if the real nondeterminism problem lies elsewhere (there are comments in the code about thread-unsafety, so I wonder).

Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.