Represents a listener to start/finish notifications of
ModelAccess.runWriteAction(Runnable)
NB: clients are guaranteed that there is a write lock inside actionStarted and actionFinished.
If a write action is triggered inside a listener, no new events are fired.
If a listener attached inside a write action then the
actionStarted()
will be triggered automatically,
again if a listener detached inside a write action then
actionFinished()
will be triggered before the actual detach happens.
Thus client can rely on the fact that there will be always preceding call of #actionStarted before the call of #actionFinished.