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;