code: func (s *Server) ShowProcessList() map[uint64]util.ProcessInfo {
  	s.rwlock.RLock()
  	rs := make(map[uint64]util.ProcessInfo, len(s.clients))
  	for _, client := range s.clients {
  		if atomic.LoadInt32(&client.status) == connStatusWaitShutdown {
  			continue
  		}
  		pi := client.ctx.ShowProcess()
  		rs[pi.ID] = pi
  	}
  	s.rwlock.RUnlock()
  	return rs
  }
docs: // ShowProcessList implements the SessionManager interface.