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();
        }
    }
public void close ( ) throws IOException { iterationLock . p ( ) ; try { synchronized ( this ) { header . write ( ) ; filemgr = null ; } } finally { releaseMemoryToPool ( ) ; iterationLock . v ( ) ; } }
***************************************************************************
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
**************************************************************************