From: Nicolai Hähnle <nicolai.haeh...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev