View Single Post
Old 01-01-2019, 09:38 PM   #210
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 586
Default

The Zombies.

As far as I can work out, the zombies should get collected and disposed of automagically, that's what seems to happen with the systems I've used, so after some time the zombies should disappear.

"When the process that created the zombies ends, init inherits the zombie processes and becomes their new parent. (init is the first process started on Linux at boot and is assigned PID 1.) init periodically executes the wait() system call to clean up its zombie children, so init will make short work of the zombies."

I did have signal(SIGCHLD, SIG_IGN); in the code which signaled to ignore the zombies but there seems to be a possible bug with it and the newer kernels and so LinVst would not run with it and the newer kernels and so I needed to take it out, and that was around 6 months ago.

The signal(SIGCHLD, SIG_IGN); can be uncommented by removing the // at the start of the line in remotevstclient.cpp, but I had trouble with it on Manjaro but maybe it's ok now.

Or, if someone is really concerned with the zombies then they can uncomment (remove the /* and */ lines) in remotevstclient.cpp but that will increase the plugin exit time a bit which can add up for multiple plugins.

RemoteVSTClient::~RemoteVSTClient()
{
/*
for (int i=0;i<5000;i++)
{
if (waitpid(-1, NULL, WNOHANG))
break;
usleep(100);
}
*/
}

Last edited by osxmidi; 01-01-2019 at 11:25 PM.
osxmidi is offline   Reply With Quote