public virtual Future get() { if (head == null) return null; Future f = head; head = f.m_next; if (head == null) tail = null; f.m_next = null; size--; return f; }