提供线程安全IO函数

This commit is contained in:
zzy 2023-10-24 09:06:54 +08:00
parent 3a07642187
commit 04f5d638dd

View File

@ -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