My question should help me to get on the right way.
I'm developing a ruby application with the concurrent framework celluloid. Here how it looks like:

I have some plugins. I want to run them concurrently and wait until the last one has finished. I've an abstract class, called PluginFrame, which is inherited by all the plugin and which also provides a run method.
- My idea was to make a
SupervisionGroup, but is that the right idea? - How can I run a
SupervisionGroupand wait until all group members have finished? - It's a good idea to make a separate
PluginPoolclass, to manage the pool of plugins? - It's also interesting for me to limit the
poolsize, so only two or three plugins run at the same time.How can I achieve this?