[GHC] #8400: Migrate the RTS to use libuv (or libev, or libevent)
GHC
ghc-devs
Fri Oct 4 04:44:55 UTC 2013
#8400: Migrate the RTS to use libuv (or libev, or libevent)
----------------------------+----------------------------------------------
Reporter: schyler | Owner: simonmar
Type: feature | Status: new
request | Milestone:
Priority: normal | Version:
Component: Runtime | Keywords:
System | Architecture: Unknown/Multiple
Resolution: | Difficulty: Project (more than a week)
Operating System: | Blocked By:
Unknown/Multiple | Related Tickets: 635, 7353
Type of failure: |
None/Unknown |
Test Case: |
Blocking: |
----------------------------+----------------------------------------------
Comment (by tibbe):
Replying to [comment:4 schyler]:
> Wouldn't it be faster to move all of the I/O stuff into the RTS as C and
then only end up back in haskell-land when an fd event is finished?
As I mentioned do *something* in the RTS instead of in a separate Haskell
thread is probably going to be somewhat faster than what we do today.
> In this case, libuv is probably appropriate.
It will likely not work, as libuv want to own the thread to drive the
event loop. The scheduler needs to own the thread for it to work. Perhaps
we could run libuv in a separate thread like we do with the I/O manager
today. I also don't know if libuv is thread safe. We most likely want to
make some assumptions/optimizations based on our special needs and I'm not
sure if libuv can support that efficiently. In the end performance will
probably be best if we call the underlying system calls directly.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8400#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list