You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I also see that odbc uses withAsyncBoundhere and says:
-- | Run an action in a bound thread. This is neccessary due to the
-- interaction with signals in ODBC and GHC's runtime.
I'm not sure if this applies to postgresql-libpq.
Edit: Here is what the async docs have to say about forkOS, which is what makes withAsyncBound different:
However, forkOS creates a bound thread, which is necessary if you need to call foreign (non-Haskell) libraries that make use of thread-local state, such as OpenGL (see Control.Concurrent).
So I guess the question is:
Does Connection, I guess the fp here, make use of thread-local state?
I'm assuming this is safer since the exceptions won't be both masked and uninterruptible in the Bound thread but I'm honestly kinda new to low-level Haskell and the FFI.
This change seems to fix the symptom I get a couple levels up the abstraction chain in Persistent:
yesodweb/persistent#1199
I discovered this fixed that symptom here: yesodweb/persistent#1199 (comment)
The text was updated successfully, but these errors were encountered: