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@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