private void handleTimeout <K, V>(
            ConcurrentLinkedDictionary <K, V> cache)
        {
//            ,
//            ExecutorService es,
//            TimeoutException e) {
            // todo: print stack traces of all threads - this causes npe
            //foreach (Thread thread in Process.GetCurrentProcess().Threads)
            //{
            //    info (thread.GetCompressedStack ().ToString ());
            //}
            //for (StackTraceElement[] trace : Thread.getAllStackTraces().values()) {
            //    for (StackTraceElement element : trace) {
            //        info("\tat " + element);
            //    }
            //    if (trace.length > 0) {
            //        info("------");
            //    }
            //}
//            es.shutdownNow();
//            try {
//                es.awaitTermination(10, SECONDS);
//            } catch (InterruptedException ex) {
//                fail("", ex);
//            }

            // Print the state of the cache
            debug("Cached Elements: {0}", cache.ToString());
            debug("Deque Forward:\n{0}", ascendingToString(cache));
            debug("Deque Backward:\n{0}", descendingToString(cache));

            // Print the recorded failures
            foreach (String failure in failures)
            {
                debug(failure);
            }
            Assert.Fail("Spun forever");
        }