[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