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.7.0:
Source: lib/Vend/Server.pm (rev. 2.93 from Thu Sep 18 00:01:21 2008)
Line 2915 (context shows lines 2905-2919 in run_server():2911)
open $fh, "<$fn" or return;
chomp (my $pid = <$fh>);
close $fh;
return $pid;
}
sub run_server {
my $next;
#::logDebug("trying to run server");
if($Global::Variable->{MV_GETPPID_BROKEN}) {
#::logDebug("setting getppid broken");
my $num = $Global::Variable->{MV_GETPPID_BROKEN} > 1
? $Global::Variable->{MV_GETPPID_BROKEN}
: 64;