Currently, the iceoryx2_bb_posix::IpcCapable trait has too much responsibility for the layer it is located on. It shall not perform reference counting to ensure lifetime - what if the process crashes and the ref-count is unusable.
Furthermore, some resources shall persist even when no process is actively using them.
The solution is an HandleStorage that holds the handle, the handle itself destroys the resource in drop and the storage tracks if it is IpcCapable or not.
Brief feature description
Currently, the
iceoryx2_bb_posix::IpcCapable
trait has too much responsibility for the layer it is located on. It shall not perform reference counting to ensure lifetime - what if the process crashes and the ref-count is unusable. Furthermore, some resources shall persist even when no process is actively using them.The solution is an
HandleStorage
that holds the handle, the handle itself destroys the resource in drop and the storage tracks if it is IpcCapable or not.