[Mesa-dev] [PATCH 19/25] ddebug: use an atomic increment when numbering files
Nicolai Hähnle
nhaehnle at gmail.com
Sun Oct 22 19:08:02 UTC 2017
From: Nicolai Hähnle <nicolai.haehnle at amd.com>
---
src/gallium/drivers/ddebug/dd_util.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/ddebug/dd_util.h b/src/gallium/drivers/ddebug/dd_util.h
index cfc0fb0ccce..bdfb7cc9163 100644
--- a/src/gallium/drivers/ddebug/dd_util.h
+++ b/src/gallium/drivers/ddebug/dd_util.h
@@ -28,20 +28,21 @@
#ifndef DD_UTIL_H
#define DD_UTIL_H
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/stat.h>
#include "c99_alloca.h"
#include "os/os_process.h"
+#include "util/u_atomic.h"
#include "util/u_debug.h"
/* name of the directory in home */
#define DD_DIR "ddebug_dumps"
static inline void
dd_get_debug_filename_and_mkdir(char *buf, size_t buflen, bool verbose)
{
static unsigned index;
char proc_name[128], dir[256];
@@ -49,21 +50,22 @@ dd_get_debug_filename_and_mkdir(char *buf, size_t buflen, bool verbose)
if (!os_get_process_name(proc_name, sizeof(proc_name))) {
fprintf(stderr, "dd: can't get the process name\n");
strcpy(proc_name, "unknown");
}
snprintf(dir, sizeof(dir), "%s/"DD_DIR, debug_get_option("HOME", "."));
if (mkdir(dir, 0774) && errno != EEXIST)
fprintf(stderr, "dd: can't create a directory (%i)\n", errno);
- snprintf(buf, buflen, "%s/%s_%u_%08u", dir, proc_name, getpid(), index++);
+ snprintf(buf, buflen, "%s/%s_%u_%08u", dir, proc_name, getpid(),
+ p_atomic_inc_return(&index) - 1);
if (verbose)
fprintf(stderr, "dd: dumping to file %s\n", buf);
}
static inline FILE *
dd_get_debug_file(bool verbose)
{
char name[512];
FILE *f;
--
2.11.0
More information about the mesa-dev
mailing list