Hi Joe,

Glad you figured that one out.

On Jun 13, 2008, at 1:12 AM, Joe Groff wrote:

 > This seems like it could be a bigger issue overall. Anywhere Factor
> calls what it thinks is a C function but is really an alien-callback
> using byte-arrays as arguments, the GC can potentially move those  
> byte-
> arrays without updating the alien-callback's corresponding parameters.
> (Maybe this is a known problem, and I just didn't read that page of
> the documentation.) Would it be a good idea to disable GC in the VM
> any time an alien-callback is running?

This is documented:

"The Factor garbage collector can move byte arrays around, and it is  
only safe to pass byte arrays to C functions if the garbage collector  
will not run while C code still has a reference to the data.

In particular, a byte array can only be passed as a parameter if the  
the C function does not use the parameter after one of the following  
occurs:
-  the C function returns
-  the C function calls Factor code via a callback"

> In the meantime, my fix for windows.com is in my git repo. I also
> refactored windows.com.wrapper to make the code a little easier to
> follow; instead of pump-and-dumping gensyms for the callbacks it
> compiles, it now generates words in the
> "windows.com.wrapper.callbacks" vocab, so you can look at the words
> and see what code the wrapper generated.

Great.

Slava


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to