瀏覽代碼

Some commentary
-Erik

Eric Andersen 23 年之前
父節點
當前提交
b9e9d181df
共有 1 個文件被更改,包括 4 次插入5 次删除
  1. 4 5
      libc/misc/internals/tempname.c

+ 4 - 5
libc/misc/internals/tempname.c

@@ -127,15 +127,14 @@ static const char letters[] =
    We use a clever algorithm to get hard-to-predict names. */
    We use a clever algorithm to get hard-to-predict names. */
 int __gen_tempname (char *tmpl, int kind)
 int __gen_tempname (char *tmpl, int kind)
 {
 {
-    int len;
     char *XXXXXX;
     char *XXXXXX;
-    static uint64_t value;
     struct timeval tv;
     struct timeval tv;
     uint32_t high, low, rh;
     uint32_t high, low, rh;
     unsigned int k;
     unsigned int k;
-    int count, fd;
-    int save_errno = errno;
-    int i;
+    int len, i, count, fd, save_errno = errno;
+    static uint64_t value; /* Do not initialize this, 
+			      or lock it for multi-threaded
+			      apps -- the messier the better */
 
 
     len = strlen (tmpl);
     len = strlen (tmpl);
     if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
     if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))