#9423: shutdownCapability sometimes loops indefinitely on OSX after hs_exit() -------------------------------------+------------------------------------- Reporter: | Owner: AndreasVoellmy | Status: new Type: bug | Milestone: 7.10.1 Priority: normal | Version: 7.8.2 Component: Runtime | Keywords: System | Architecture: Unknown/Multiple Resolution: | Difficulty: Unknown Operating System: MacOS X | Blocked By: Type of failure: Incorrect | Related Tickets: 9284 result at runtime | Test Case: | Blocking: | Differential Revisions: Phab:D129 | -------------------------------------+------------------------------------- Comment (by Austin Seipp <austin@…>): In [changeset:"7e658bc14e2dd6baf208deebbdab9e1285ce4c72/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="7e658bc14e2dd6baf208deebbdab9e1285ce4c72" Revert "Revert "rts/base: Fix #9423"" and resolve issue that caused the revert. Summary: This reverts commit 4748f5936fe72d96edfa17b153dbfd84f2c4c053. The fix for #9423 was reverted because this commit introduced a C function setIOManagerControlFd() (defined in Schedule.c) defined for all OS types, while the prototype (in includes/rts/IOManager.h) was only included when mingw32_HOST_OS is not defined. This broke Windows builds. This commit reverts the original commit and resolves the problem by only defining setIOManagerControlFd() when mingw32_HOST_OS is defined. Hence the missing prototype error should not occur on Windows. In addition, since the io_manager_control_wr_fd field of the Capability struct is only usd by the setIOManagerControlFd, this commit includes the io_manager_control_wr_fd field in the Capability struct only when mingw32_HOST_OS is not defined. Test Plan: Try to compile successfully on all platforms. Reviewers: austin Reviewed By: austin Subscribers: simonmar, ezyang, carter Differential Revision: https://phabricator.haskell.org/D174 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9423#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler