Formal Semantics
|
|
Wait: --Concrete Syntax: ObjId.wait(); -- --RC: Makes the current thread "dormant", adds it to the wait set of the current --RC: object and releases the locks on the current object. The current thread is --RC: disabled for thread scheduling until another thread call the notifyAll method --RC: on the current object (or the notify method). -- --PC: Checks that the object 'ObjId' is locked by the current executing --PC: thread 'OThId' and determines how many times the object is locked --PC: (nb times). --PC: Adds the thread identifier 'OThId' to the wait set of the object 'ObjId'. --PC: Releases the nb locks on the object 'ObjId'. getObjectLockInformation( ObjId |- ObjL1 -> OThId, nb ) & diff( nb, 0 ) & addThreadToTheObjectWaitSet( OThId, ObjId |- ObjL1 -> ObjL1_1 ) & releaseObjectLock( ObjId |- ObjL1_1 -> ObjL1_2 ) -------------------------------- ObjL1, ClVarL, OThId, ObjId |- identifier "wait", vals[] -> ObjL1_2, ClVarL, insts[synchroWaitEndRelock(ObjId, integer nb)], dormant(ObjId, integer nb) ; do ENVchangeObjectStatusInStatusList( ObjId ); |
To get the semantics
Click to get a complete version of the semantics and the environment.
Click to get directly the Typol files and their translation in html.
Documentation
Isabelle Attali INRIA Sophia Antipolis BP 93 06902 Sophia Antipolis - France |
Denis Caromel INRIA Sophia Antipolis BP 93 06902 Sophia Antipolis - France |
Marjorie Russo INRIA Sophia Antipolis BP 93 06902 Sophia Antipolis - France |