[tor-bugs] #18362 [Tor]: Tor could use a generic 'handle' / 'weakref' implementation.

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Feb 22 14:07:24 UTC 2016


#18362: Tor could use a generic 'handle' / 'weakref' implementation.
------------------------+--------------------------------
     Reporter:  nickm   |      Owner:
         Type:  defect  |     Status:  new
     Priority:  High    |  Milestone:  Tor: 0.2.9.x-final
    Component:  Tor     |    Version:
     Severity:  Normal  |   Keywords:  modularity
Actual Points:          |  Parent ID:
       Points:  small   |    Sponsor:  SponsorS
------------------------+--------------------------------
 Frequently we want to have one object have a pointer to another, but we
 don't want to have the first object own the second.  In these cases, we
 need to do one of the following ugly C dances:
    * We make sure that the pointed-to object never outlives the pointing
 object.
    * We make sure that when the pointed-to object is freed, the pointer to
 it is set to NULL.
    * Instead of using a pointer, we use some kind of unique identifier,
 and look up the pointed-to object in a hash table.

 The first two options are error-prone, and the third is slower than
 regular pointer access.

 Instead of these choices, we could use a 'handle' pattern to create a
 standard way to look up objects indirectly; we could use some of the
 tricks from a usual 'weak reference' implementation.  Ideally, we could
 write the interface in such a way as to permit more than one possible
 implementation.

 The branch `weakref` in my public repository has some janky progress
 towards a solution here.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/18362>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list