close

override fun close()

Blocks until the close finishes, so never call it from a thread that the future from closeSessionAsync needs in order to complete. It is final, so a subclass cannot swap the graceful close for an abrupt one: put teardown in closeSessionAsync.