
#13944: Introduce synchronized FFI -------------------------------------+------------------------------------- Reporter: winter | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | 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: | -------------------------------------+------------------------------------- Comment (by winter): I'm not even sure that my proposal work :) but let's try to have a discussion on this idea. Remember the new `-qn` RTS flag, which allow some inactive threads doesn't participate GC, (The word participate seems too vague, i think it means the thread doesn't do GC work, but do get GCed by other GC worker thread). Now a thread which enter `synchronized` call will behave exactly like an inactive thread which is not selected to do GC work, that means its root will get GCed by some other thread, which is OK since `synchronized` FFI restrict what kind of heap object it can reference. I'm not totally clear how this idea works because i'm not an expert on RTS, all clarifications and suggestions are welcomed! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13944#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler