On Friday, 7 September 2018 at 14:36:42 UTC, Russel Winder wrote:
From what I can see, processes created with std.process: spawnProcess are not terminated when the creating process terminates, i.e. it seems Config.detached is the default for these process.

Is there a way of all spawned processes being terminated on main termination?

You can wrap in a Process struct or class and take advantage of the destructor to do that. Assuming you write standard GC-ed code the destructor should be called at the end or if you free manually the resources.

example API:

struct SpawnedProcess
{
private:
    Pid pid;
public:
    this();
    void execute();
    void terminate();
    bool running();
    ~this(){ if (running) terminate();}
}

P.S: i just see that in my own Process class i forgot to do that.

Reply via email to