[plt-scheme] Re: scheme_weak_reference and MZ_PRECISE_GC
On Tue, 9 Sep 2008 16:45:12 -0600 Matthew Flatt wrote:
> At Tue, 09 Sep 2008 19:09:54 +0200, David Hansen wrote:
>> On Tue, 9 Sep 2008 10:22:18 -0600 Matthew Flatt wrote:
>>
>> > At Tue, 09 Sep 2008 17:59:42 +0200, David Hansen wrote:
>> >> I want a mapping
>> >>
>> >> <some C pointer from another lib> -> <Scheme_Object* that wraps around
>> >> the C pointer + some possible other data>.
>> >
>> > That's simply a hash table from integers (representing C pointers) to
>> > Scheme objects.
>> >
>> > If that's it, there's no need for anything like weak references. Is
>> > there more to the problem?
>>
>> Well, sometimes it's that easy :) Thank you very much. Last question
>> for now: How do I store weak values? Using a weak box?
>
> Just to make sure I understand: what do you mean by "weak values"?
>
> Do you mean, for example, that the Scheme objects in the above table
> should be collectable even while the C object is still allocated
> (perhaps because the table of wrappers is really just a cache)?
>
> In that case, yes, a weak box can be used for the value of the hash
> table, and when you look up a box from the table, you'll have to treat
> an empty box the same as not being in the table.
Yup, that's it. Thank you very much for your help.
David