MV_GETPPID_BROKEN — fix getppid() which is broken on Linux systems with thread-enabled Perl
The variable enables a fix for the broken getppid() function on Linux systems with thread-enabled Perl installations. Interchange then uses syscall64() instead of the getppid() call.
Example: Enabling MV_GETPPID_BROKEN
Add the following to interchange.cfg:
Variable MV_GETPPID_BROKEN 1
Starting with Interchange 5.0, this directive is present in the default Debian GNU /etc/interchange/features.cfg file to let Interchange run on Debian systems later than 3.0 (which do have threaded Perl installation).
Running Interchange in production on thread-enabled Perl machines is discouraged (for the time being).
Interchange 5.9.0:
Source: lib/Vend/Server.pm
Line 3097 (context shows lines 3087-3101 in run_server():3090)
return $pid;
}
sub run_server {
my $next;
#::logDebug("trying to run server");
@$Global::SocketFile = "$Global::VendRoot/etc/socket"
unless @$Global::SocketFile and $Global::SocketFile->[0];
if($Global::Variable->{MV_GETPPID_BROKEN}) {
#::logDebug("setting getppid broken");
my $num = $Global::Variable->{MV_GETPPID_BROKEN} > 1
? $Global::Variable->{MV_GETPPID_BROKEN}
: 64;