Implemented a generic mechanism to allow tab pages to unregister their event handlers when they are hidden (when a tab page gets deselected)
Also changed VMStoragePage to derive from BaseTabPage, so it could use the same mechanism.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
We observed that some threads can reach deadlock-ish state after they have Invoked into a control's UI thread. When it happens they are all in a waiting for join or in sleep state for very long time, although there should not be any deadlock situations.
It seems this has something to do with multiple parent controls and with which control we invoked on. This should not make a difference, because we have got one UI thread (for MainWindow) they should wait for, but we have seen it does.
The solution that fixed this issue was to invoke on the MainWindow instead of various controls (see a4fe507adf ).
This changeset is changing all our Invokes to invoke into MainWindow
instead of a control itself. (MainWindow's UI thread is the only UI thread
all Control is using in XenCenter)
This changeset should be in place until we have found the root cause or the exact reason for the above.
- Make "Reclaim freed space" a CommandButton (will appear as disabled if the command cannot execute)
- Add tooltip to "Reclaim freed space" button to show the reason it is disabled
- Hide "Reclaim freed space" button on old servers
- Allow multiselect
- "Reclaim freed space" button enabled if at least one SR can be trimmed
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>
The operation applies to an SR. The button is on the Storage tab of the host/pool, and is entitled "Reclaim freed space".
It comes between the New SR and Properties buttons.
If the SR does not support TRIM , the button is invisible and the Properties button moves left to close up the gap.
Signed-off-by: Mihaela Stoica <mihaela.stoica@citrix.com>