<div dir="ltr">Thanks Bill. I have two cases, one is that I am making a new hashtable after accessing a Max dictionary from C, and the other reading a hashtable and turning the contents into a Max dictionary. So in the case of creating a new hash-table, I guess it will not be protected? <div><br></div><div>thanks</div><div>iain</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 8, 2020 at 10:16 AM &lt;<a href="mailto:bil@ccrma.stanford.edu">bil@ccrma.stanford.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Objects created in C are treated the same as those in Scheme by the GC.<br>
There is a lag between when an object is created and when it is first<br>
liable to be GC&#39;d (set indirectly by GC_TEMPS_SIZE in s7.c).  The <br>
hash-table<br>
traversal creates a cons cell for each key/value pair, so if your table<br>
has lots of entries, you need to gc protect at least the iterator.<br>
I assume your hash-table is already protected.  Don&#39;t turn off the GC.<br>
Unless you want to keep the entries returned by s7_iterate, you don&#39;t <br>
need<br>
to gc protect them.<br>
<br>
</blockquote></div>