diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-02-22 14:34:05 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-02-22 16:58:58 +0000 |
commit | 64fc1bb9c87e95ff484ecd11f391b1c0d556d584 (patch) | |
tree | 588dd8dd1a8ab862ea7e22c596d25d2bdf835490 /src/sna/sna_trapezoids_precise.c | |
parent | 900499bff962a63e1d9b5f808d1deb65d55754a2 (diff) |
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 <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna_trapezoids_precise.c')
-rw-r--r-- | src/sna/sna_trapezoids_precise.c | 10 |
1 files changed, 5 insertions, 5 deletions
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); |