code: public void close()
                      throws IOException {
          //
          // The disk is kept permanently consistent, and the application now
          // controls the filemgr, so we have nothing to do any more.
          //        
          iterationLock.p();
          try {
              synchronized (this) {
                  header.write();
                  filemgr = null;
              }
          } finally {
              releaseMemoryToPool();
              iterationLock.v();
          }
      }
docs: ***************************************************************************
  close Close the HTOD, write the header to disk, and blow out internal structures.
  Note that if multiple HTODs are implemented over the same file manager they
  will have to be individually closed. Note also that this method does NOT
  automatically close the FileManager.
  
  @exception IOException thrown if there are physical problems with the underlying file
  and the header cannot be written
  **************************************************************************