
If it returns NULL, then I need to back off what I'm doing and trigger a
GC. How do I do the latter?
On Thu, Sep 20, 2018, 5:31 AM Ömer Sinan Ağacan
allocateMightFail does the heap check for you and returns NULL. For the current capability you can use MyCapability() in Cmm and pass the value to the RTS function you're implementing.
Ömer
David Feuer
, 20 Eyl 2018 Per, 12:26 tarihinde şunu yazdı: Aha! Okay. How do I get the current capability to pass to that? I guess
I should probably perform a heap check before calling lookupSta bleName for simplicity, at least to start.
On Thu, Sep 20, 2018, 5:16 AM Ömer Sinan Ağacan
wrote:
Have you seen Storage.c:allocateMightFail ?
Ömer
David Feuer
, 20 Eyl 2018 Per, 11:32 tarihinde şunu yazdı: I'm working on re-implementing the stable name system. For the new
design, it seems much cleaner to allocate stable names in lookupStableName (in rts/StableName.c) rather than in the C-- code that calls it. But I haven't seen RTS code that does heap allocation. Is it possible? If so, how do I do it?
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs