I often implement an object namespace (visible to the
application at run-time) for primary objects managed by
the RTOS. This is invaluable in distributed applications
as it allows the implementations to be more effectively
decoupled (I really can't imagine any other way of supporting
such applications that wouldn't be incredibly brittle!).
But, the RTOS I'm currently writing doesn't export any
objects beyond the local host. And, I can let threads
pass handles directly for objects of interest so there is
no need to provide the formal namespace (a luxury that space
But, being able to "tag" key objects with a suitable "name"
often helps with debugging (you can inspect the memory image
associated with the object to "see" it's name embedded therein).
This has very minimal impact (depending on how much space
the developer wants to waste on these tags).
However, without the formality of the (active) namespace
manager, there is nothing to guarantee these tags are
meaningful, unique, etc.
And, at (production) run-time, they would be completely
useless (since I see no reason to add support for querying
them via the API). I.e., they seem like they *might* only
have value at DEBUG time.
Is this sort of hack helpful? Or, just a silly decoration
that distracts rather than assists??