[GHC] #13554: Allow the user to provide a C function that is called on each thread the RTS creates before running any Haskell code
GHC
ghc-devs at haskell.org
Tue Apr 11 20:27:09 UTC 2017
#13554: Allow the user to provide a C function that is called on each thread the
RTS creates before running any Haskell code
-------------------------------------+-------------------------------------
Reporter: dobenour | Owner: (none)
Type: feature request | Status: new
Priority: normal | Milestone: 8.4.1
Component: Runtime System | Version: 8.0.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Description changed by bgamari:
@@ -19,1 +19,1 @@
- This is a feature requ
+ This is a feature request.
New description:
Currently, it is very difficult to use the MySQL/MariaDB client library
with Haskell. One must use bound threads, which comes at a performance
penalty. The reason is that the underlying library requires a certain
initialization function to be called on each OS thread before any other
functions are called.
Similarly, it is difficult to optimally use libcurl with GHC. The best-
performing way to use libcurl is to have one multi handle per thread and
to use `curl_multi_socket_action` to respond to events. This is currently
not possible from Haskell, at least not easily.
(There are other issues with using libcurl from Haskell; most notably
libcurl’s event support makes heavy use of callbacks, which are slow, to
tell the application which file descriptors to wait for. But that is a
separate issue.)
Setting milestone to 8.4.1 because I don’t think that this is difficult.
This is a feature request.
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13554#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list