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 |