 +  for(j=0; j<n_block_reader; j++){
 +    blkrd->w[j].mt = blkrd;
 +    pthread_create(&blkrd->w[j].tid, &attr, mt_block_reader, &blkrd->w[j]);
-+    if(pthread_setname_np(blkrd->w[j].tid, "block_reader")){}
++    char tn[32];
++    sprintf(tn, "blk_reader-%d-%d\n", j, CPU_BLKRD(j));
++    if(pthread_setname_np(blkrd->w[j].tid, tn)){}
 +#if defined(CPU_SET_AFFINITY)
 +{
 +      cpu_set_t cpuset;

+  mt_linesplit_enqueue(mt->linesplit, b, myid); 
+
+  while(1){
+    blkrd_t *b = md_blkrd_alloc(&mt->blkrd_free_list2);
+    b->block_len = 0;
+    if(partial_line_len){
+      if (partial_line_len > MAX_LINE_LENGTH) {

+  blkrd_work_t * const w = (blkrd_work_t*)data;
+  mt_blkrd_t * const mt = w->mt;
+  const int myid = w - w->mt->w;
+  register blkrd_free_list_t ** const my_fl = &mt->blkrd_free_list2.blkrd_free_list1[myid];
+
+  int partial_line_len = 0;
+  char partial_line[MAX_LINE_LENGTH];
