PERFORCE change 123411 for review

Garrett Cooper gcooper at FreeBSD.org
Fri Jul 13 00:06:27 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=123411

Change 123411 by gcooper at optimus-revised_pkgtools on 2007/07/13 00:06:05

	Not sure why but existing file never made it to the depot..

Affected files ...

.. //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#2 edit

Differences ...

==== //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#2 (text+ko) ====

@@ -268,6 +268,10 @@
 {
     char cmd[FILENAME_MAX];
 
+    static struct timespec before, after, time_diff;
+
+    clock_gettime(CLOCK_REALTIME, &before);
+
     if (fname[0] == '/')
 	snprintf(cmd, FILENAME_MAX, "/bin/cp -r %s %s", fname, to);
     else
@@ -276,6 +280,15 @@
 	cleanup(0);
 	errx(2, "%s: could not perform '%s'", __func__, cmd);
     }
+
+    clock_gettime(CLOCK_REALTIME, &after);
+
+    time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+    time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+    printf(  "(%s) Difference: %3.20lf secs\n", "copy_file", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 )  );
+
 }
 
 void
@@ -283,6 +296,10 @@
 {
     char cmd[FILENAME_MAX];
 
+    static struct timespec before, after, time_diff;
+
+    clock_gettime(CLOCK_REALTIME, &before);
+
     if (fname[0] == '/')
 	snprintf(cmd, FILENAME_MAX, "/bin/mv %s %s", fname, to);
     else
@@ -291,6 +308,15 @@
 	cleanup(0);
 	errx(2, "%s: could not perform '%s'", __func__, cmd);
     }
+
+    clock_gettime(CLOCK_REALTIME, &after);
+
+    time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+    time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+    printf(  "(%s) Difference: %3.20lf secs\n", "move_file", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 )  );
+
 }
 
 /*
@@ -306,16 +332,22 @@
 {
     char cmd[FILENAME_MAX * 3];
 
+    static struct timespec before, after, time_diff;
+
+    clock_gettime(CLOCK_REALTIME, &before);
+
     if (!to) {
 	/* If absolute path, use it */
 	if (*fname == '/')
 	    dir = "/";
+
 	snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - -C %s %s | /usr/bin/tar xpf -",
 		 dir, fname);
     }
     else
 	snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - %s | /usr/bin/tar xpf - -C %s",
 		 fname, dir);
+
 #ifdef DEBUG
     printf("Using '%s' to copy trees.\n", cmd);
 #endif
@@ -323,16 +355,33 @@
 	cleanup(0);
 	errx(2, "%s: could not perform '%s'", __func__, cmd);
     }
+
+    clock_gettime(CLOCK_REALTIME, &after);
+
+    time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+    time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+    printf(  "(%s) Difference: %3.20lf secs\n", "copy_heirarchy", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 )  );
+
 }
 
 /* Unpack a tar file */
 int
 unpack(const char *pkg, const char *flist)
 {
+
+    static struct timespec before, after, time_diff;
+
+    clock_gettime(CLOCK_REALTIME, &before);
+
     const char *comp, *cp;
     char suff[80];
 
-    comp = "";
+    int ret_code = 0;
+
+    comp = "-j";
+
     /*
      * Figure out by a crude heuristic whether this or not this is probably
      * compressed and whichever compression utility was used (gzip or bzip2).
@@ -341,25 +390,27 @@
 	cp = strrchr(pkg, '.');
 	if (cp) {
 	    strcpy(suff, cp + 1);
-	    if (strchr(suff, 'z') || strchr(suff, 'Z')) {
-		if (strchr(suff, 'b'))
-		    comp = "-j";
-		else
-		    comp = "-z";
+	    if ((strchr(suff, 'z') || strchr(suff, 'Z')) && !strchr(suff, 'b')) {
+		comp = "-z";
 	    }
 	}
     }
-    else
-#if defined(__FreeBSD_version) && __FreeBSD_version >= 500039
-	comp = "-j";
-#else
-	comp = "-z";
-#endif
+
     if (vsystem("/usr/bin/tar -xp %s -f '%s' %s", comp, pkg, flist ? flist : "")) {
 	warnx("tar extract of %s failed!", pkg);
-	return 1;
+	ret_code = 1;
     }
-    return 0;
+
+    clock_gettime(CLOCK_REALTIME, &after);
+
+    time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+    time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+    printf(  "(%s) Difference: %3.20lf secs\n", "unpack", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 )  );
+
+    return ret_code;
+
 }
 
 /*


More information about the p4-projects mailing list