local ByteArrays: performGC do any good?
Peter Tanski
p.tanski at gmail.com
Thu Mar 8 00:33:52 EST 2007
Hello Simon and Ian,
Perhaps either of you may be able to answer this question easily:
I am testing the replacement Integer library in Haskell and I wanted
to copy arrays between the two--I can't do all of that in Haskell
because the RTS allocation has a maximum alignment of 4 when I need
16 (sometimes--I might also realign things, as a last resort). In
any case, the easy way to do it would be to grab the ByteArray# from
the Integer (J# Int# ByteArray#), grab the Addr# with the primitive
byteArrayContents#, turn that into a pointer and pass it to the
foreign function. That would be a sketchy move--even for testing--
because Integer ByteArrays are local (not pinned). Do you think
doing a performGC just before grabbing the Addr# would help? There
doesn't seem to be another primitive for marshalling a pointer from a
ByteArray.
Cheers,
Peter Tanski
More information about the Glasgow-haskell-users
mailing list