1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-26 15:53:26 +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 committed by cnhenry
parent 1458a6bbc5
commit 06c268417f
4 changed files with 13 additions and 1 deletions

View File

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

View File

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

View File

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

View File

@ -561,8 +561,11 @@ void refresh_inactive_windows(void)
for (i = 0; i < MAX_WINDOWS_NUM; ++i) { for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
ToxWindow *a = &windows[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); line_info_print(a);
pthread_mutex_unlock(&Winthread.lock);
}
} }
} }