From 3e55c9dac06fdfe2a1a63b51afa10b0a6f8dc31e Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 11 Sep 2007 19:00:43 +0200 Subject: [PATCH] Fixed a nasty bug in the threaded radix-sorter. --- lib/sorter/array.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/sorter/array.c b/lib/sorter/array.c index 4d64d758..cb8c7aa7 100644 --- a/lib/sorter/array.c +++ b/lib/sorter/array.c @@ -437,11 +437,13 @@ asort_run(struct asort_context *ctx) { ASORT_XTRACE(2, "Decided to use parallel quicksort"); threaded_quicksort(ctx); - return; } + else #endif - ASORT_XTRACE(2, "Decided to use sequential quicksort"); - ctx->quicksort(ctx->array, ctx->num_elts); + { + ASORT_XTRACE(2, "Decided to use sequential quicksort"); + ctx->quicksort(ctx->array, ctx->num_elts); + } } else { @@ -453,9 +455,12 @@ asort_run(struct asort_context *ctx) threaded_radixsort(ctx, swap); return; } + else #endif - ASORT_XTRACE(2, "Decided to use sequential radix-sort (swap=%d)", swap); - asort_radix(ctx, ctx->array, ctx->buffer, ctx->num_elts, ctx->hash_bits, swap); + { + ASORT_XTRACE(2, "Decided to use sequential radix-sort (swap=%d)", swap); + asort_radix(ctx, ctx->array, ctx->buffer, ctx->num_elts, ctx->hash_bits, swap); + } if (swap) ctx->array = ctx->buffer; } -- 2.39.2