Spawning a process, then killing it on SIGINT
aliak
something at something.com
Sun Nov 24 15:36:33 UTC 2019
On Saturday, 23 November 2019 at 12:19:27 UTC, Steven
Schveighoffer wrote:
> On 11/23/19 4:54 AM, aliak wrote:
>> Is there a way to go about killing a process after spawning it
>> on a SIGINT?
>>
>> I can't do this for e.g. because kill is not @nogc.
>>
>> Pid currentSpawnedPid;
>> extern(C) void killCurrentPidHandler(int sig) nothrow @nogc
>> @system {
>> kill(currentSpawnedPid, sig);
>> }
>>
>> int main() {
>> currentSpawnedPid = spawnProcess(["docker-compose", "up"],
>> stdin, stdout, stderr);
>> signal(SIGINT, &killCurrentPidHandler);
>> return wait(currentSpawnedPid);
>> }
>>
>> Any other ways to go about this?
>
> Yeah, fix phobos. kill should be @nogc/nothrow, and probably
> @safe.
>
> -Steve
Looked in to it, seems step one is getting phobos compiling with
dip1008 :/
Kill uses enforce.
More information about the Digitalmars-d-learn
mailing list