From 64fc1bb9c87e95ff484ecd11f391b1c0d556d584 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sat, 22 Feb 2014 14:34:05 +0000 Subject: sna: Allow SIGBUS/SEGV to kill the thread To handle sigtrapping of the threads, we allow the threads to handle their async signals and upon hitting the trap, we kill the thread. All the rest of the threads are reaped by the main xserver thread afterwards. Signed-off-by: Chris Wilson --- src/sna/sna_trapezoids_precise.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/sna/sna_trapezoids_precise.c') diff --git a/src/sna/sna_trapezoids_precise.c b/src/sna/sna_trapezoids_precise.c index bc0a7e7c..f0e8266e 100644 --- a/src/sna/sna_trapezoids_precise.c +++ b/src/sna/sna_trapezoids_precise.c @@ -1913,7 +1913,7 @@ precise_trapezoid_span_converter(struct sna *sna, threads[n].extents.y1 = y; threads[n].extents.y2 = y += h; - sna_threads_run(span_thread, &threads[n]); + sna_threads_run(n, span_thread, &threads[n]); } assert(y < threads[0].extents.y2); @@ -2139,7 +2139,7 @@ precise_trapezoid_mask_converter(CARD8 op, PicturePtr src, PicturePtr dst, threads[n].extents.y1 = y; threads[n].extents.y2 = y += h; - sna_threads_run(mask_thread, &threads[n]); + sna_threads_run(n, mask_thread, &threads[n]); } assert(y < threads[0].extents.y2); @@ -2855,7 +2855,7 @@ trapezoid_span_inplace__x8r8g8b8(CARD8 op, threads[n].extents.y1 = y; threads[n].extents.y2 = y += h; - sna_threads_run(inplace_x8r8g8b8_thread, &threads[n]); + sna_threads_run(n, inplace_x8r8g8b8_thread, &threads[n]); } assert(y < threads[0].extents.y2); @@ -3134,7 +3134,7 @@ precise_trapezoid_span_inplace(struct sna *sna, threads[n].extents.y1 = y; threads[n].extents.y2 = y += h; - sna_threads_run(inplace_thread, &threads[n]); + sna_threads_run(n, inplace_thread, &threads[n]); } assert(y < threads[0].extents.y2); @@ -3281,7 +3281,7 @@ precise_trapezoid_span_fallback(CARD8 op, PicturePtr src, PicturePtr dst, threads[n].extents.y1 = y; threads[n].extents.y2 = y += h; - sna_threads_run(mask_thread, &threads[n]); + sna_threads_run(n, mask_thread, &threads[n]); } assert(y < threads[0].extents.y2); -- cgit v1.2.3