From c466cfa24b2c9e911245ef75394d645b089484a3 Mon Sep 17 00:00:00 2001 From: SarahW Date: Wed, 12 Apr 2017 20:46:21 +0100 Subject: [PATCH] Clean up FIFO threads on 2D cards on exit/reset. Patch from bit. --- src/vid_ati_mach64.c | 4 ++++ src/vid_et4000w32.c | 4 ++++ src/vid_s3.c | 4 ++++ src/vid_s3_virge.c | 4 ++++ src/vid_tgui9440.c | 4 ++++ 5 files changed, 20 insertions(+) diff --git a/src/vid_ati_mach64.c b/src/vid_ati_mach64.c index 35a9060..c08ef5a 100644 --- a/src/vid_ati_mach64.c +++ b/src/vid_ati_mach64.c @@ -2635,6 +2635,10 @@ void mach64_close(void *p) svga_close(&mach64->svga); + thread_kill(mach64->fifo_thread); + thread_destroy_event(mach64->wake_fifo_thread); + thread_destroy_event(mach64->fifo_not_full_event); + free(mach64); } diff --git a/src/vid_et4000w32.c b/src/vid_et4000w32.c index 5de42be..f0b936a 100644 --- a/src/vid_et4000w32.c +++ b/src/vid_et4000w32.c @@ -1221,6 +1221,10 @@ void et4000w32p_close(void *p) svga_close(&et4000->svga); + thread_kill(et4000->fifo_thread); + thread_destroy_event(et4000->wake_fifo_thread); + thread_destroy_event(et4000->fifo_not_full_event); + free(et4000); } diff --git a/src/vid_s3.c b/src/vid_s3.c index 52b7e75..d97b78a 100644 --- a/src/vid_s3.c +++ b/src/vid_s3.c @@ -2264,6 +2264,10 @@ void s3_close(void *p) svga_close(&s3->svga); + thread_kill(s3->fifo_thread); + thread_destroy_event(s3->wake_fifo_thread); + thread_destroy_event(s3->fifo_not_full_event); + free(s3); } diff --git a/src/vid_s3_virge.c b/src/vid_s3_virge.c index 417e8ff..8811ddb 100644 --- a/src/vid_s3_virge.c +++ b/src/vid_s3_virge.c @@ -3943,6 +3943,10 @@ static void s3_virge_close(void *p) thread_destroy_event(virge->wake_main_thread); thread_destroy_event(virge->wake_render_thread); + thread_kill(virge->fifo_thread); + thread_destroy_event(virge->wake_fifo_thread); + thread_destroy_event(virge->fifo_not_full_event); + svga_close(&virge->svga); free(virge); diff --git a/src/vid_tgui9440.c b/src/vid_tgui9440.c index bf8ded1..6a93aec 100644 --- a/src/vid_tgui9440.c +++ b/src/vid_tgui9440.c @@ -552,6 +552,10 @@ void tgui_close(void *p) svga_close(&tgui->svga); + thread_kill(tgui->fifo_thread); + thread_destroy_event(tgui->wake_fifo_thread); + thread_destroy_event(tgui->fifo_not_full_event); + free(tgui); }