sampsyo/beets — pull request #673 by geigerzaehler (2014-04-09 18:04:12+00:00)
Title: Utility to run tasks concurrently

This commit adds a new `util.Queue` class that allows one to run several tasks concurrently. In particular we can expensive computations in multiple threads and spawn several processes in parallel. This addresses #663. The code is backed by *trollius*, a backport of the Python 3.4 `asyncio` module (see #621).

The *convert* and *replaygain* plugins have been extended to use the new utility. They run multiple instances of the `ffmpeg` and `mp3gain` commands.