FFI calls: is it possible to allocate a small memory block on a stack?

Bertram Felgenhauer bertram.felgenhauer at googlemail.com
Fri Apr 23 05:57:44 EDT 2010


Denys Rtveliashvili wrote:
> OK, the code I have checked out from the repository contains this in
> "rts/sm/Storage.h":
[global pinned_object_block variable]

Odd. This was changed in ghc head by a patch dating Dec 1st 2009:

Tue Dec  1 17:03:21 CET 2009  Simon Marlow <marlowsd at gmail.com>
  * Make allocatePinned use local storage, and other refactorings
  
  This is a batch of refactoring to remove some of the GC's global
  state, as we move towards CPU-local GC.  
...
    - allocatePinned() was still allocating from global storage and
      taking a lock each time, now it uses local storage. 
      (mallocForeignPtrBytes should be faster with -threaded).
...

which turned pinned_object_block into a per-capability variable.

So which version of ghc are you looking at?

regards,

Bertram


More information about the Glasgow-haskell-users mailing list