[Fiasco.OC] Desctruction of objects created by factory

Sergey Grekhov <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hello, L4 hackers!
I have a question about Fiasco.OC.
I am a bit stuck in understanding of how objects created by factory are destroyed? For example, we have a call from user space l4_factory_create_thread(). It creates object in Fiasco (file fiasco/src/kernel/factory.cpp) and map it using call map() from fiasco/src/kernel/map_util.cpp. However, the procedure of destruction of created objects (tasks, threads, gates, irqs, vms) is not clear: it seems that there is some kind of the "garbage collector", but I can not figure out some important things. Particularly:
1) where is the code which essentially destroys created objects (call destructors)?
2) what conditions make "garbage collection" to start?
3) how "garbage collection" can be forced from user-space?

As a use-case, I can propose the fork-bomb test from Genode framework: it creates lots of new Genode threads (thus, it makes a lot of new thread/gate/irq objects in Fiasco.OC).
Thanks in advance for your answer.

-- 
Best regards,
Sergey Grekhov
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.