提供线程安全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
|
// 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, ...) {
|
static inline tfprintf(MUTEX* mutex, FILE *const stream, const char* format, ...) {
|
||||||
va_list var;
|
va_list var;
|
||||||
va_start(var, format);
|
va_start(var, format);
|
||||||
@ -219,6 +228,24 @@ static inline tfprintf(MUTEX* mutex, FILE *const stream, const char* format, ...
|
|||||||
va_end(var);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user