A B C | | | o----- | | | \ | | | ------o | | | | | o----- | | | \ | | | ------o | | | | | ------o | | / | | o----- | | | |<------Not locked!... | o----- | | | \ | | | ------o | | | | | ------o | | / | | o----- | | | | | -----o | | / | | o------ | | | | |
A, B and C are objects, and I draw the thread of control of an
interaction initiated from A.
If I have this scheme in a sequential program of mine, and I just
"distribute" C, there isn't anything anymore which insures that its
state is not changed between my two accesses. I.e. I have broken the
semantics of my initial program!