ForeignPtr performance

Simon Marlow simonmarhaskell at gmail.com
Mon Dec 17 05:33:19 EST 2007


Bulat Ziganshin wrote:
> Hello Scott,
> 
> Sunday, December 16, 2007, 11:57:33 PM, you wrote:
> 
>> My question is: what exactly does GHC.Prim.touch# do? This appears to
> 
> it's a no-op (for ghc 6.6+ at least). its only task is to notify ghc
> optimizer that data were accessed so it doesn't free the memory

Yes, exactly.  touch# generates no code, but it is vitally important 
because if the ForeignPtr is referencing data in the heap (like 
mallocForeignPtrBytes does), it prevents the data from being GC'd before 
the operation completes.

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list