Name

MV_GETPPID_BROKEN — fix getppid() which is broken on Linux systems with thread-enabled Perl

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

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.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Enabling MV_GETPPID_BROKEN

Add the following to interchange.cfg:

Variable MV_GETPPID_BROKEN 1

NOTES

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).

AVAILABILITY

MV_GETPPID_BROKEN is available in Interchange versions:

4.6.0-5.9.0 (git-head)

SOURCE

Interchange 5.9.0:

Source: lib/Vend/Server.pm
Line 3053 (context shows lines 3043-3057 in run_server():3046)

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;

AUTHORS

Interchange Development Group

SEE ALSO

DocBook! Interchange!