aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortradke <tradke@b32723a9-ab3a-4a60-88e2-2e5d99d7c17a>2002-01-07 15:17:46 +0000
committertradke <tradke@b32723a9-ab3a-4a60-88e2-2e5d99d7c17a>2002-01-07 15:17:46 +0000
commitd1fb60f99d8a1d8eb1cbaf673dffb05fa24610b5 (patch)
tree267bf4da851855cfaa11343f29a44f5a4f844459
parentac6c858f8f2c9969d50f9a747766c97dd24c316d (diff)
No auto recovery possible on NT.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOUtil/trunk@145 b32723a9-ab3a-4a60-88e2-2e5d99d7c17a
-rw-r--r--src/CheckpointRecovery.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/CheckpointRecovery.c b/src/CheckpointRecovery.c
index a2858ae..efbad8f 100644
--- a/src/CheckpointRecovery.c
+++ b/src/CheckpointRecovery.c
@@ -19,7 +19,9 @@
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
+#ifdef HAVE_DIRENT_H
#include <dirent.h>
+#endif
static const char *rcsid = "$Header$";
CCTK_FILEVERSION(CactusBase_IOUtil_CheckpointRecovery_c)
@@ -55,7 +57,9 @@ typedef struct
******************** Internal Routines ************************
********************************************************************/
static void SetInputFlag (int vindex, const char *optstring, void *arg);
+#ifdef HAVE_DIRENT_H
static int CompareFiles (const void *a, const void *b);
+#endif
/************************************************************************
@@ -513,17 +517,21 @@ int IOUtil_RecoverParameters (int (*recoverFn) (cGH *GH,
const char *fileExtension,
const char *fileType)
{
- int len, extension_len, recover_file_len, retval;
+ int retval;
+#ifdef HAVE_DIRENT_H
+ int len, extension_len, recover_file_len;
unsigned int num_files;
- DIR *dir;
const char *p;
+ DIR *dir;
struct dirent *file;
filelist_t *filelist, *tmp;
+#endif
DECLARE_CCTK_PARAMETERS
if (CCTK_Equals (recover, "auto") || CCTK_Equals (recover, "autoprobe"))
{
+#ifdef HAVE_DIRENT_H
if (verbose)
{
CCTK_VInfo (CCTK_THORNSTRING, "Searching for %s checkpoint files "
@@ -635,6 +643,16 @@ int IOUtil_RecoverParameters (int (*recoverFn) (cGH *GH,
"recovery directory '%s'",
fileType, recover_file, recovery_dir);
}
+#else
+ fileExtension = fileExtension;
+
+ /* No opendir(3) ??? It's probably a Windows box, so just give up ! */
+ CCTK_WARN (0, "You cannot use 'IO::recover = \"auto*\"' on "
+ "this architecture because it doesn't provide opendir(3) to "
+ "automatically look for checkpoint files.\n"
+ "Please use 'IO::recover = \"manual\"' instead !");
+ retval = -1;
+#endif
}
else
{
@@ -867,9 +885,11 @@ static void SetInputFlag (int vindex, const char *optstring, void *flags)
}
+#ifdef HAVE_DIRENT_H
/* callback for qsort() to sort the list of recovery files found */
static int CompareFiles (const void *a, const void *b)
{
return (((const filelist_t *) a)->iteration -
((const filelist_t *) b)->iteration);
}
+#endif