By default, the destroyStack property of newly created stacks is set to false.

Comments:

If a stack's destroyStack property is set to true, closing all stacks in its stack file removes it from memory space, cleaning up after the stack and freeing memory for use by the application. If any handlers in the stack are running, the stack is not purged from memory until all handlers have completed. (The stack is not removed from memory until all stacks in the same stack file are also closed.)

If the destroyStack is false, closing a stack's window leaves it in memory. If you open and close many stacks in a session, and the destroyStack of all these stacks is false, the memory used by these stacks will continue growing until you quit the application. If you reopen the stack during the same session, a warning message appears cautioning you that the stack is already open.

If you close a stack whose destroyStack is true while a handler is running, the stack is removed from memory after all running handlers finish executing. This means that if you close and re-open a stack during a handler, and the stack's destroyStack is true, the stack is removed from memory (and closed again) after the handler finishes.

Note: Despite its alarming name, the destroyStackproperty does not destroy or damage a stack. It simply allows it to be automatically removed from memory.