From 8d4b903bbb5f0c9cc1efd9b62522423d791f5efc Mon Sep 17 00:00:00 2001 From: "Taylor R. Campbell" Date: Sun, 10 Feb 2008 21:35:46 +0000 Subject: [PATCH] Avoid a race condition with the GC daemon in LOOKUP-UNCOMPRESSED-FILE. --- v7/src/runtime/infutl.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/v7/src/runtime/infutl.scm b/v7/src/runtime/infutl.scm index 5f8e6d461..d25acb8bd 100644 --- a/v7/src/runtime/infutl.scm +++ b/v7/src/runtime/infutl.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: infutl.scm,v 1.74 2008/01/30 20:02:31 cph Exp $ +$Id: infutl.scm,v 1.75 2008/02/10 21:35:46 riastradh Exp $ Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, @@ -752,11 +752,14 @@ USA. (cond ((null? entries) (if-not-found)) ((and (pathname=? (caar entries) compressed-file) - (cddar entries) - (or (file-exists? (cadar entries)) - (begin - (set-cdr! (cdar entries) #f) - #f))) + ;; Avoid a subtle race condition with the GC daemon. + (let ((time (cddar entries))) + (set-cdr! (cdar entries) (real-time-clock)) + (and time + (or (file-exists? (cadar entries)) + (begin + (set-cdr! (cdar entries) #f) + #f))))) (dynamic-wind (lambda () unspecific) (lambda () -- 2.25.1