void insert(const future<T> &future) { insert(future.get_event()); }
future(const future<T> &other) : m_event(other.get_event()) { }
void insert(const future<T> &future) { insert(future.get_event()); }
future(const future<T> &other) : m_event(other.get_event()) { }