On 25/03/11 05:07, Dan McGee wrote:
On Thu, Mar 24, 2011 at 7:30 AM, Jan Steffens<[email protected]>  wrote:
My main motivation was to remove the "sync", which can stall for
minutes on a busy machine (FS#23378). I also cleaned up the redirection.

Signed-off-by: Jan Steffens<[email protected]>
Fine with the patch, but can I ask how rigorous the testing is this
has gone through? I'd want to be relatively certain we don't regress
here since this will land on maint.


I have tested this against all situations I can remember that the original logpipe stuff was supposed to have fixed. Unless I am missing something, this is good to go with the minor change I show below. Version with that change is on my working-maint branch.

---
  scripts/makepkg.sh.in |   11 +++++------
  1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 5742c49..0b3891e 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -794,15 +794,14 @@ run_function() {
                # ensure overridden package variables survive tee with split 
packages
                logpipe=$(mktemp -u "$startdir/logpipe.XXXXXXXX")
                mkfifo "$logpipe"
-               exec 3>&1
-               tee "$BUILDLOG"<  "$logpipe"&
-               exec 1>"$logpipe" 2>"$logpipe"
+               tee "$BUILDLOG"<  "$logpipe"&  teepid=$!

put these on separate lines and make teepid local.

tee "$BUILDLOG" < "$logpipe" &
local teepid=$!

                restoretrap=$(trap -p ERR)
                trap 'error_function $pkgfunc' ERR
-               $pkgfunc 2>&1
+               $pkgfunc&>"$logpipe"
                eval $restoretrap
-               sync
-               exec 1>&3 2>&3 3>&-
+
+               wait $teepid
                rm "$logpipe"
        else
                restoretrap=$(trap -p ERR)
--
1.7.4.1






Reply via email to