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.
The Ada spawn manager uses UNIX domain sockets provided by the Anet library to implement fast and simple IPC.
Copyright (C) 2012, 2015 secunet Security Networks AG Copyright (C) 2012, 2015 Reto Buerki <email@example.com> Free use of this software is granted under the terms of the GNAT Modified General Public License (GMGPL).
The Spawn Manager sources are available through its git repository:
$ git clone http://git.codelabs.ch/git/spawn-manager.git
A browsable version of the repository is also available here: http://git.codelabs.ch/?p=spawn-manager.git
To compile the spawn manager on your system, you need to have the following software installed:
If you want to run the unit tests before installation (which is recommended) you furthermore need to have the following installed:
Ahven (Test-Framework): http://ahven.stronglytyped.org/
The project contains a unit test suite which can be run by entering the following command:
$ make tests
All tests should be marked with PASS behind the test name.