# HG changeset patch # User wenzelm # Date 1284932314 -7200 # Node ID 4e466a5f67f310c4c9c92baec080477af0820dac # Parent c01d89d18ff0082997bf106e6adec0bc7f0626f7 simplified Isabelle_System.mk_fifo: inlined script, append PPID and PID uniformly; diff -r c01d89d18ff0 -r 4e466a5f67f3 lib/Tools/mkfifo --- a/lib/Tools/mkfifo Sun Sep 19 22:40:22 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# -# Author: Makarius -# -# DESCRIPTION: create named pipe - - -PRG="$(basename "$0")" - -function usage() -{ - echo - echo "Usage: isabelle $PRG [SUFFIX]" - echo - echo " Create a temporary named pipe and return its name." - echo - exit 1 -} - -function fail() -{ - echo "$1" >&2 - exit 2 -} - - -## main - -SUFFIX="" -[ "$#" != 0 ] && { SUFFIX="-$1"; shift; } - -[ "$#" != 0 ] && usage - -ID="$PPID" -[ "$ID" = 0 -o "$ID" = 1 ] && ID="$$" # Cygwin workaround - -FIFO="/tmp/isabelle-fifo${ID}${SUFFIX}" - -mkfifo -m 600 "$FIFO" || fail "Failed to create fifo: $FIFO" -echo "$FIFO" diff -r c01d89d18ff0 -r 4e466a5f67f3 src/Pure/System/isabelle_system.scala --- a/src/Pure/System/isabelle_system.scala Sun Sep 19 22:40:22 2010 +0200 +++ b/src/Pure/System/isabelle_system.scala Sun Sep 19 23:38:34 2010 +0200 @@ -282,8 +282,13 @@ def mk_fifo(): String = { - val (result, rc) = isabelle_tool("mkfifo", next_fifo()) - if (rc == 0) result.trim + val i = next_fifo() + val script = + "FIFO=\"/tmp/isabelle-fifo-${PPID}-$$-" + i + "\"\n" + + "mkfifo -m 600 \"$FIFO\" || { echo \"Failed to create fifo: $FIFO\" >&2; exit 2; }\n" + + "echo -n \"$FIFO\"\n" + val (result, rc) = bash_output(script) + if (rc == 0) result else error(result) }