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  |