Spawning Processes From Ada Using The Ada Spawn Manager

The codelabs.ch project is steadily growing their collection of nice Ada projects, the latest being the Ada Spawn Manager:

The Ada spawn manager implements the concept described in the GNAT GPL package System.OS_Lib. It is used to solve the problem of spawning processes at arbitrary times from multitasking Ada programs:

If the parent is using tasking, and needs to spawn subprocesses at arbitrary times, one technique is for the parent to spawn (very early) a particular spawn-manager subprocess whose job is to spawn other processes. The spawn-manager avoids tasking. The parent sends messages to the spawn-manager requesting it to spawn processes, using whatever inter-process communication mechanism you like, such as sockets.

SYSTEM.OS_LIB specification
— GNAT COMPILER COMPONENTS

The Ada spawn manager uses UNIX domain sockets provided by the Anet library to implement fast and simple IPC.

Fun!

Currently there’s no official release version, but you can git clone the development version:

git clone http://git.codelabs.ch/git/spawn-manager.git

I wonder how this compares to spawning processes using the Florist POSIX package found at libre.adacore.com?