After running Mercurial status, the command completes, but the output window's tab remains boldfaced.
This means you are not closing the output stream from the IOProvider you use to write to the output window. Which means that the IOProvider handle will
be retained for the life of the VM, and the memory mapped file you write to when you write to the output window will remain open and not be deleted on
VM exit - even if the user closes the output tab.
You can always reopen the output stream; and if you call IOProvider.getIO("Mercurial") every time you need to write output, you will be given the same
output tab and IO instance unless the user has closed the window, in which case a new one will be created - but more importantly, everything associated
with the previous output tab can garbage collected - but if, and only if, you close the output stream.
Please close the output stream when an operation completes.
I do not see that we are using IOProvider.getIO() to get an output stream to write to when running status.
Are you saying that we should call InputOutput.closeInputOutput() or OutputWriter.close() for the OutputWriters returned
by getOut() or getErr()
OutputWriter.close(). IOProvider.closeInputOutput programmatically closes the output window tab.
As far as I can see the same thing happens with Subversion.
Do you know what is happening?
OutputWriter.close() should be called whenever a command finishes.
I am seeing this problem when I invoke Diff.
Created attachment 57194 [details]
Patch pushed in e2c1d174791e.
As this is the only case I could find of the output window tab remaining boldfaced I am closing the bug.