mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-30 00:14:26 +00:00
Bugfix: Use a mutex to control non-curses output
Without this, there is no guarantee writes won't overlap (and it happens quite a bit on Windows with the bitforce driver)
This commit is contained in:
parent
d98e561a0a
commit
da4ff2bde1
10
cgminer.c
10
cgminer.c
@ -164,7 +164,7 @@ static int total_threads;
|
||||
static pthread_mutex_t hash_lock;
|
||||
static pthread_mutex_t qd_lock;
|
||||
static pthread_mutex_t *stgd_lock;
|
||||
static pthread_mutex_t curses_lock;
|
||||
pthread_mutex_t console_lock;
|
||||
static pthread_mutex_t ch_lock;
|
||||
static pthread_rwlock_t blk_lock;
|
||||
|
||||
@ -1323,12 +1323,12 @@ struct cgpu_info *cpus;
|
||||
#ifdef HAVE_CURSES
|
||||
static inline void unlock_curses(void)
|
||||
{
|
||||
mutex_unlock(&curses_lock);
|
||||
mutex_unlock(&console_lock);
|
||||
}
|
||||
|
||||
static inline void lock_curses(void)
|
||||
{
|
||||
mutex_lock(&curses_lock);
|
||||
mutex_lock(&console_lock);
|
||||
}
|
||||
|
||||
static bool curses_active_locked(void)
|
||||
@ -5056,9 +5056,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
mutex_init(&hash_lock);
|
||||
mutex_init(&qd_lock);
|
||||
#ifdef HAVE_CURSES
|
||||
mutex_init(&curses_lock);
|
||||
#endif
|
||||
mutex_init(&console_lock);
|
||||
mutex_init(&control_lock);
|
||||
mutex_init(&sharelog_lock);
|
||||
mutex_init(&ch_lock);
|
||||
|
@ -34,7 +34,9 @@ static void my_log_curses(__maybe_unused int prio, char *f, va_list ap)
|
||||
|
||||
strcpy(f + len - 1, " \n");
|
||||
|
||||
mutex_lock(&console_lock);
|
||||
vprintf(f, ap);
|
||||
mutex_unlock(&console_lock);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user