- User Since
- Aug 7 2014, 5:38 PM (205 w, 2 d)
Apr 16 2015
Glad you found this. First priority is probably to get a test that demonstrates that the bug can happen.
Mar 9 2015
This is a duplicate. Please disregard this. The real one is D722.
Feb 2 2015
Feb 1 2015
Nov 17 2014
Oct 7 2014
Cool! Do we have any benchmarks?
Sep 17 2014
Sep 11 2014
This seems stalled, though I think it is ready. Is there anything I can do to help move this along?
Aug 23 2014
- Include of rts/IOManager.h is not needed for mingw32_HOST_OS.
Aug 15 2014
I'm happy with the diff. @austin: do you want to apply it?
Aug 11 2014
My validate (and maybe Harbormaster's too) is failing on the following:
- Make foreign calls setIOManagerWakeupFd, setIOManagerControlFd, and setTimerManagerControlFd "unsafe" since all they do is write values into variables in the RTS.
Yes, O(1) times. So I won't bother with primops. I will mark the calls as
"unsafe", since all they do is write to a variable in the RTS. Will
validate and update.
Should the setTimerManagerControlFd() and setIOManagerControlFd() be defined as primops rather than imported foreign functions? I imagine there is less overhead associated with primops.
I think it should be fine if the number of capabilities changes at runtime.
The control pipe for the IO manager of capability i is stored in the
Capability_ struct of capability[i]. So there is no need to resize any data
structures outside of what is already done by the RTS. At shutdown,
ioManagerDie simply reads the control pipe field of all the capability[i]
elements for i in 0..n_capabilities.
Validate still fails for me due to failures that were in master before my patches - this patch introduces no new validate failures.
Rework the patch to maintain a per-capability file descriptor for the control pipes of the IO managers and to avoid introducint any new locks.
Aug 9 2014
Validate fails on my machine, but the 4 failures are also present in HEAD (d0ee4eb0879f77067e7f05e0daa80e6ca8817f1d) for me, so I don't think this has anything to do with this patch.
Aug 8 2014
- Examine return value of write call in ioManagerDie.
Thanks for pointing out the warning that I triggered. I will fix and put up
a new diff.
Phabricator's builds seem to fail on my diff, but I can't see why from the build log provided. I don't see any obvious errors in the log.
Yes, I think we can get rid of shutdownManagers in GHC.Thread. I'm doing that now and also running validate. Will update when this is done.