diff --git a/ghc/lib/std/cbits/getLock.c b/ghc/lib/std/cbits/getLock.c index be6acb46f1593eb44e5d5e934765bae9dc742738..756457c9571e8d39bd1ed33358dbd102bc068bde 100644 --- a/ghc/lib/std/cbits/getLock.c +++ b/ghc/lib/std/cbits/getLock.c @@ -1,7 +1,7 @@ /* * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998 * - * $Id: getLock.c,v 1.4 1999/02/04 12:13:15 sof Exp $ + * $Id: getLock.c,v 1.5 1999/03/01 09:11:39 sof Exp $ * * stdin/stout/stderr Runtime Support */ @@ -65,8 +65,12 @@ int exclusive; we don't have any read locks on it already.. */ for (i = 0; i < readLocks; i++) { if (readLock[i].inode == sb.st_ino && readLock[i].device == sb.st_dev) { +#ifndef __MINGW32__ errno = EAGAIN; return -1; +#else + break; +#endif } } /* If we're determined that there is only a single @@ -76,8 +80,12 @@ int exclusive; if (exclusive) { for (i = 0; i < writeLocks; i++) { if (writeLock[i].inode == sb.st_ino && writeLock[i].device == sb.st_dev) { +#ifndef __MINGW32__ errno = EAGAIN; return -1; +#else + break; +#endif } } } @@ -92,8 +100,12 @@ int exclusive; that there's no-one writing to the underlying file. */ for (i = 0; i < writeLocks; i++) { if (writeLock[i].inode == sb.st_ino && writeLock[i].device == sb.st_dev) { - errno = EAGAIN; - return -1; +#ifndef __MINGW32__ + errno = EAGAIN; + return -1; +#else + break; +#endif } } /* Fit in new entry, reusing an existing table entry, if possible. */