[ros-dev] Registry and ObjectManager (was FreeLdr Part II)

Alex Ionescu ionucu at videotron.ca
Tue Mar 8 17:58:22 CET 2005


Thomas Weidenmueller wrote:

> Hartmut Birr wrote:
>
>> If a handle
>> is created, the reference count of an object is dropped to zero. If an
>> object is dereferenced we must look to the handle and the reference
>> count.
>>
> after an object was created the reference counter should be 1. 
> dereferencing that object directly after it was created should 
> decrement it to 0 and delete it. the handle count should match the 
> number of handles that exist for the object. When creating the first 
> handle the reference counter should be incremented by 1, when deleting 
> the last handle to the object it should be decremented by 1. For 
> additional handles it should remain unchanged. I implemented this 
> behavior in a local branch that completely replaces the handle 
> implementation using generic executive handle tables. But i still have 
> to track down a few bugs.
>
>
Of course, it is interesting to note that one of the reasons I have made 
an Ob rewrite is because of the way we incorrectly manage handles and 
references. Not only are our ObCreate/Insert routines badly implemented 
(which can create problems with drivers) but we also sometimes create 
handles out of thin air. There are other problems as well which 
influence the registry, like the fact that we don't send a parse context 
to the parse routine, and many more implementation issues. I have been 
waiting on Thomas to get the handle table working, because that will 
directly plug in with my Ob. Expect a branch in around 2 weeks (which 
won't compile or boot), and hopefully my design will have worked around 
this problem; it's entirely based on Windows'.

Best regards,
Alex Ionescu


More information about the Ros-dev mailing list