one producer per thread

maybe we can use get_thread_producer.send... here? This would allow us to get rid off @producer