public void _kill() { // get/reset the pending queue Queue queue = null; lock (m_lock) { queue = this.m_queue; this.m_queue = new Queue(); } // cancel all pending messages while (true) { Future future = queue.get(); if (future == null) { break; } future.cancel(); } }
internal void _dispatch(Future future) { try { if (future.isCancelled()) { return; } if (m_pool.m_killed) { future.cancel(); return; } future.set(receive(future.m_msg)); } catch (Err.Val e) { future.err(e.m_err); } catch (System.Exception e) { future.err(Err.make(e)); } }
internal void _dispatch(Future future) { try { if (future.isCancelled()) return; if (m_pool.m_killed) { future.cancel(); return; } future.set(receive(future.m_msg)); } catch (Err.Val e) { future.err(e.m_err); } catch (System.Exception e) { future.err(Err.make(e)); } }