b->fb = bopen(b->filename, O_RDWR, sorter_stream_bufsize);
if (b->flags & SBF_OPEN_WRITE)
bseek(b->fb, 0, SEEK_END);
- bconfig(b->fb, BCONFIG_IS_TEMP_FILE, 1); /* FIXME: Was it always so? */
+ bconfig(b->fb, BCONFIG_IS_TEMP_FILE, 1);
b->flags &= ~SBF_SWAPPED_OUT;
- SORT_XTRACE("Swapped in %s", b->filename);
+ SORT_XTRACE(2, "Swapped in %s", b->filename);
}
}
void
sbuck_swap_out(struct sort_bucket *b)
{
- if ((b->flags & (SBF_OPEN_READ | SBF_OPEN_WRITE)) && b->fb)
+ if ((b->flags & (SBF_OPEN_READ | SBF_OPEN_WRITE)) && b->fb && !(b->flags & SBF_SOURCE))
{
if (b->flags & SBF_OPEN_WRITE)
b->size = btell(b->fb);
bclose(b->fb);
b->fb = NULL;
b->flags |= SBF_SWAPPED_OUT;
- SORT_XTRACE("Swapped out %s", b->filename);
+ SORT_XTRACE(2, "Swapped out %s", b->filename);
}
}
ctx->big_buf_size = 2*bs;
ctx->big_buf_half = ((byte*) ctx->big_buf) + bs;
ctx->big_buf_half_size = bs;
- SORT_XTRACE("Allocated sorting buffer (%jd bytes)", (uintmax_t) bs);
+ SORT_XTRACE(2, "Allocated sorting buffer (%jd bytes)", (uintmax_t) bs);
}
void
return;
big_free(ctx->big_buf, ctx->big_buf_size);
ctx->big_buf = NULL;
- SORT_XTRACE("Freed sorting buffer");
+ SORT_XTRACE(2, "Freed sorting buffer");
+}
+
+void
+format_size(byte *buf, u64 x)
+{
+ if (x < 10<<10)
+ sprintf(buf, "%.1fK", (double)x/(1<<10));
+ else if (x < 1<<20)
+ sprintf(buf, "%dK", (int)(x/(1<<10)));
+ else if (x < 10<<20)
+ sprintf(buf, "%.1fM", (double)x/(1<<20));
+ else if (x < 1<<30)
+ sprintf(buf, "%dM", (int)(x/(1<<20)));
+ else if (x < (u64)10<<30)
+ sprintf(buf, "%.1fG", (double)x/(1<<30));
+ else
+ sprintf(buf, "%dG", (int)(x/(1<<30)));
}