diff --git a/tthread.h b/tthread.h index f3417d1..2a3e470 100644 --- a/tthread.h +++ b/tthread.h @@ -210,6 +210,15 @@ static inline int thread_cond_wait(COND* cond, MUTEX* mutex) { //} // thread safety stdio +static inline tprintf(MUTEX* mutex, const char* format, ...) { + va_list var; + va_start(var, format); + thread_mutex_lock(mutex); + vprintf(format, var); + thread_mutex_unlock(mutex); + va_end(var); +} + static inline tfprintf(MUTEX* mutex, FILE *const stream, const char* format, ...) { va_list var; va_start(var, format); @@ -219,6 +228,24 @@ static inline tfprintf(MUTEX* mutex, FILE *const stream, const char* format, ... va_end(var); } +static inline tsprintf(MUTEX* mutex, char* const buffer, const char* format, ...) { + va_list var; + va_start(var, format); + thread_mutex_lock(mutex); + vsprintf(buffer, format, var); + thread_mutex_unlock(mutex); + va_end(var); +} + +static inline tsnprintf(MUTEX* mutex, char* const buffer, const size_t buffer_count, const char* format, ...) { + va_list var; + va_start(var, format); + thread_mutex_lock(mutex); + vsnprintf(buffer,buffer_count, format, var); + thread_mutex_unlock(mutex); + va_end(var); +} + #ifdef __cplusplus } #endif