I would try plain, simple, threads queueing data to raw arrays, and controlling the synchronization yourself.