1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-14 05:53:01 +01:00

Fix some possible race conditions related to line printing

This commit is contained in:
Jfreegman 2015-06-30 22:40:45 -04:00
parent 312d0c3f42
commit 84a0276668
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
4 changed files with 13 additions and 1 deletions

View File

@ -923,7 +923,10 @@ static void chat_onDraw(ToxWindow *self, Tox *m)
ChatContext *ctx = self->chatwin;
pthread_mutex_lock(&Winthread.lock);
line_info_print(self);
pthread_mutex_unlock(&Winthread.lock);
wclear(ctx->linewin);
curs_set(1);

View File

@ -656,7 +656,10 @@ static void groupchat_onDraw(ToxWindow *self, Tox *m)
ChatContext *ctx = self->chatwin;
pthread_mutex_lock(&Winthread.lock);
line_info_print(self);
pthread_mutex_unlock(&Winthread.lock);
wclear(ctx->linewin);
curs_set(1);

View File

@ -254,7 +254,10 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
ChatContext *ctx = self->chatwin;
pthread_mutex_lock(&Winthread.lock);
line_info_print(self);
pthread_mutex_unlock(&Winthread.lock);
wclear(ctx->linewin);
curs_set(1);

View File

@ -561,8 +561,11 @@ void refresh_inactive_windows(void)
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
ToxWindow *a = &windows[i];
if (a->active && a != active_window && !a->is_friendlist)
if (a->active && a != active_window && !a->is_friendlist) {
pthread_mutex_lock(&Winthread.lock);
line_info_print(a);
pthread_mutex_unlock(&Winthread.lock);
}
}
}