Bulat Ziganshin wrote:
Hello Brian,

Tuesday, June 27, 2006, 2:43:15 AM, you wrote:

achieve a goal. One other thing to bear in mind is that foreign
calls are extremely slow, so for example it is much faster to use the
Foreign.Marshal.Array and Foreign.C.String functions to allocate and
populate a temporary array with the contents of a list, and send the
pointer to this array to C with one foreign call, than to send each
element of the list with multiple foreign calls (eg to paste only
19K of text from the Windows clipboard to my app took over 1
minute!!!

he-he-he :)  just add "unsafe" specifier:

Thanks Bulat! It turns out nearly every foreign function I'm using doesn't make callbacks into Haskell so can be marked "unsafe" so your solution has saved me an enormous amount of refactoring... :-)

On a related note, as I was reading the FFI specification again, I can't find any mention of whether or not FunPtr's are stable with respect to garbage collection. I'm assuming they are but am I correct?

Thanks, Brian.

--
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.

http://www.metamilk.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to