Skip to content

Commit 49aa479

Browse files
committed
Mark cprintf buffer as thread_local
1 parent 159cae8 commit 49aa479

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ $(error config.mk is missing. Please run gen-config step before building.)
33
endif
44
include config.mk
55
all :
6-
$(CC) $(CFLAGS) cprintf.c main.c -o cprintf
6+
$(CC) $(CFLAGS) -std=c11 cprintf.c main.c -o cprintf
77
$(STRIP) cprintf
88
format :
99
clang-format -i include/cprintf.h cprintf.c test.c main.c
1010
test :
11-
$(CC) -O0 -Wall -Wextra -Wgnu -std=c23 -pedantic -ggdb -fsanitize=address cprintf.c test.c
11+
$(CC) -O0 -Wall -Wextra -Wgnu -std=c11 -pedantic -ggdb -fsanitize=address cprintf.c test.c

cprintf.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
#define cprintf_strlen(f) (f == NULL ? 0 : strlen(f))
3232
#define cprintf_avoid_null(f) (f == NULL ? "" : f)
3333
#define cprintf_buf_len(f, d) (f != NULL ? (size_t)snprintf(NULL, 0, f, d) : 0)
34-
static char **cprintf_buffer = NULL;
35-
static size_t cprintf_buf_count = 0;
34+
static thread_local char **cprintf_buffer = NULL;
35+
static thread_local size_t cprintf_buf_count = 0;
3636
static void cprintf_mark_buf(char *b)
3737
{
3838
cprintf_buffer = realloc(cprintf_buffer, (cprintf_buf_count + 1) * sizeof(char *));

include/cprintf.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include <stdarg.h>
3939
#include <ctype.h>
4040
#include <sys/stat.h>
41+
#include <threads.h>
4142
#ifndef _Nullable
4243
#define _Nullable
4344
#endif

0 commit comments

Comments
 (0)