From: Sam S. <sd...@gn...> - 2009-07-01 20:38:24
|
Vladimir Tzankov wrote: > On 6/30/09, Sam Steingold <sd...@gn...> wrote: >> I have to pin/unpin a bunch of objects in one go, so, I guess, I will have >> to >> modify pin_varobject & unpin_varobject. >> >> I wonder why you save vo on the stack for finish_entry_frame - isn't it >> GC-safe? > > Sometimes it's not or its address is not known. For example in > stream.d - low_fill_buffered_handle(), low_flush_buffered_handle(), .. looks like the volume of stuff to be exported is far too large. I wonder if - for the modules only - we should create functions pin_varobject(object o) unpin_varobject(object o) unwind_protect(void body (void *arg), void protect (void *arg)) how expensive are C function calls (compared to the operations like pinning objects &c)? Sam |