We can make as many pipes as we have threads, each with a fixed record range and with a specified segment (R1 / R2). Then we can connect to each pipe on a reader and treat it as a normal FASTX file. What's great about this is we can process *either* sequentially or in parallel *without* deadlocks!