[cairo] [PATCH 1/3] pthread-same-source: Restructure code slightly

Bryce W. Harrington b.harrington at samsung.com
Sat Apr 12 14:56:56 PDT 2014


LGTM

Reviewed-by: Bryce Harrington <b.harrington at samsung.com>

On Fri, Apr 11, 2014 at 10:48:08AM +0200, Uli Schlachter wrote:
> This moves the code for joining a thread into a helper function.
> 
> Signed-off-by: Uli Schlachter <psychon at znc.in>
> ---
>  test/pthread-same-source.c | 36 ++++++++++++++++++++++--------------
>  1 file changed, 22 insertions(+), 14 deletions(-)
> 
> diff --git a/test/pthread-same-source.c b/test/pthread-same-source.c
> index d0eda4a..5960ca0 100644
> --- a/test/pthread-same-source.c
> +++ b/test/pthread-same-source.c
> @@ -108,6 +108,25 @@ create_source (cairo_surface_t *similar)
>  }
>  
>  static cairo_test_status_t
> +join_thread (cairo_t *cr, pthread_t thread)
> +{
> +    void *surface;
> +
> +    if (pthread_equal (thread, pthread_self ()))
> +	return CAIRO_TEST_SUCCESS;
> +
> +    if (pthread_join (thread, &surface) != 0)
> +	return CAIRO_TEST_FAILURE;
> +
> +    cairo_set_source_surface (cr, surface, 0, 0);
> +    cairo_surface_destroy (surface);
> +    cairo_paint (cr);
> +
> +    cairo_translate (cr, 0, 4 * HEIGHT);
> +    return CAIRO_TEST_SUCCESS;
> +}
> +
> +static cairo_test_status_t
>  draw (cairo_t *cr, int width, int height)
>  {
>      pthread_t threads[N_THREADS];
> @@ -146,20 +165,9 @@ draw (cairo_t *cr, int width, int height)
>      cairo_paint (cr);
>  
>      for (i = 0; i < N_THREADS; i++) {
> -	void *surface;
> -
> -        if (pthread_equal (threads[i], pthread_self ()))
> -            break;
> -
> -        if (pthread_join (threads[i], &surface) == 0) {
> -	    cairo_set_source_surface (cr, surface, 0, 0);
> -	    cairo_surface_destroy (surface);
> -	    cairo_paint (cr);
> -
> -	    cairo_translate (cr, 0, 4 * HEIGHT);
> -	} else {
> -            test_status = CAIRO_TEST_FAILURE;
> -	}
> +	cairo_test_status_t status = join_thread (cr, threads[i]);
> +	if (status != CAIRO_TEST_SUCCESS)
> +	    test_status = status;
>      }
>  
>      return test_status;
> -- 
> 1.9.1
> 
> -- 
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list