A question about moving GC
    Unknown W. Brackets 
    unknown at simplemachines.org
       
    Sat Jun  3 11:09:56 PDT 2006
    
    
  
Typically, garbage collectors run only on memory 
allocation/deallocation/similar.  They won't run in the middle of a 
foreign program... unless it's threaded, then all bets are off.
-[Unknown]
> How to ensure D code that interoperates with external libraries will
> work when a moving gc is eventually used with D? Will i need to add
> lots of pinning/unpinning code?
> 
> extern(C) external(Foo* foo); 
> 
> struct Foo
> {
> }
> 
> class Bar
> {
> 	Foo foo;
> }
> 
> main()
> {
> 	Foo* foo = new Foo();
> 	
> 	// Should foo be pinned before the call?
> 	external(foo);
> 
> 	Bar bar = new Bar();
> 
> 	// Should bar be pinned before the call?
> 	external(&bar.foo);
> }
> 
> 
> btw, ares seems to provides a moving gc and does have a gc.pin method.
> Should i consider looking closer at ares? Thanks
    
    
More information about the Digitalmars-d-learn
mailing list