code: func SynchronizedAfterSuite(allNodesBody interface{}, node1Body interface{}, timeout ...float64) bool {
  	globalSuite.SetSynchronizedAfterSuiteNode(
  		allNodesBody,
  		node1Body,
  		codelocation.New(1),
  		parseTimeout(timeout...),
  	)
  	return true
  }
docs: //SynchronizedAfterSuite blocks complement the SynchronizedBeforeSuite blocks in solving the problem of setting up
  //external singleton resources shared across nodes when running tests in parallel.
  //
  //SynchronizedAfterSuite accomplishes this by taking *two* function arguments.  The first runs on all nodes.  The second runs only on parallel node #1
  //and *only* after all other nodes have finished and exited.  This ensures that node 1, and any resources it is running, remain alive until
  //all other nodes are finished.
  //
  //Both functions have the same signature: either func() or func(done Done) to run asynchronously.
  //
  //Here's a pseudo-code example that complements that given in SynchronizedBeforeSuite.  Here, SynchronizedAfterSuite is used to tear down the shared database
  //only after all nodes have finished:
  //
  //	var _ = SynchronizedAfterSuite(func() {
  //		dbClient.Cleanup()
  //	}, func() {
  //		dbRunner.Stop()
  //	})