rework the inside.

taking a sequence or an iterable (map)
if it's a iterable, each item is pushed through pipe.
if it's a sequence, only the index is pushed through pipe.

trying to be graceful terminating the slaves.
put feeder and fetcher into threads so they are done same time.
limit size of S and Q queues.
try to finish the loop after the first error is detected
try to detected if a slave is killed by the os abruptly, and
simulate an exception.