docs: public void printAllThreads() throws IOException {
  		int[] stateCounter = new int[6];
  
  		System.out.println("\n Thread Id and name of all live threads:");
  
  		long tids[] = view.vmInfo.getAllThreadIds();
  		ThreadInfo[] threadInfos = view.vmInfo.getThreadInfo(tids);
  		for (ThreadInfo info : threadInfos) {
  			if (info == null) {
  				continue;
  			}
  
  			String threadName = info.getThreadName();
  			if (view.threadNameFilter != null && !threadName.toLowerCase().contains(view.threadNameFilter)) {
  				continue;
  			}
  			System.out.println(
  					" " + info.getThreadId() + "\t: \"" + threadName + "\" (" + info.getThreadState().toString() + ")");
  			stateCounter[info.getThreadState().ordinal()]++;
  		}
  
  		StringBuilder statesSummary = new StringBuilder(" Summary: ");
  		for (State state : State.values()) {
  			statesSummary.append(state.toString()).append(':').append(stateCounter[state.ordinal()]).append("  ");
  		}
  		System.out.println(statesSummary.append("\n").toString());
  
  		if (view.threadNameFilter != null) {
  			System.out.println(" Thread name filter is:" + view.threadNameFilter);
  		}
  		System.out.flush();
  	}