@@ -20,7 +20,7 @@ static void* sort_lines(void* arg) {
20
20
pthread_mutex_lock (& mutex );
21
21
if (cur_nthreads < MAX_NTHREADS ) {
22
22
method = 1 ;
23
- cur_nthreads += 2 ;
23
+ cur_nthreads += 1 ;
24
24
if (cur_nthreads > max_nthreads )
25
25
max_nthreads = cur_nthreads ;
26
26
} else
@@ -31,19 +31,18 @@ static void* sort_lines(void* arg) {
31
31
lineset left , right ;
32
32
split_lines (& left , & right , ls );
33
33
34
- pthread_t left_thread , right_thread ;
34
+ pthread_t left_thread ;
35
35
int r1 = pthread_create (& left_thread , NULL , & sort_lines , & left );
36
- int r2 = pthread_create (& right_thread , NULL , & sort_lines , & right );
37
- assert (r1 == 0 && r2 == 0 );
36
+ assert (r1 == 0 );
38
37
38
+ sort_lines (& right );
39
39
r1 = pthread_join (left_thread , NULL );
40
- r2 = pthread_join (right_thread , NULL );
41
- assert (r1 == 0 && r2 == 0 );
40
+ assert (r1 == 0 );
42
41
43
42
merge_lines (ls , & left , & right );
44
43
45
44
pthread_mutex_lock (& mutex );
46
- cur_nthreads -= 2 ;
45
+ cur_nthreads -= 1 ;
47
46
pthread_mutex_unlock (& mutex );
48
47
} else
49
48
qsort (ls -> lines , lineset_size (ls ), sizeof (line ), line_compare );
0 commit comments