提供线程安全IO函数
This commit is contained in:
parent
3a07642187
commit
04f5d638dd
27
tthread.h
27
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user