[comp.lang.ada] Determining Rendezvous Availability

aleph@lime.ucsb.edu (Thomas McVittie) (11/29/90)

I am currently involved in a research program aimed towards measuring
the reliability of Ada programs.   Key to our understanding of these
programs is the development of a series of static and dynamic measures
of the programs themselves.  One area we are interested is in measuring
the number of rendezvous which are open (i.e. the task is willing and able
to accept a particular rendezvous) at a given time.  

I can use the predefined attribute 'CALLABLE to determine whether a task
is alive (not terminated, completed or abnormal), but don't seem to be
able to determine whether the rendezvous is available or not.  Obviously
I could use our VADS debugger and ask for a listing of tasks (lt).  But
the programs which we are analyzing make extensive use of the CLOCK 
function when scheduling events, so stopping and restarting the program
dramatically change the behavior of the program.

Any suggestions ?

------------------------------------------------------------------------
    Thomas McVittie               |  email : mcvittie@faulty.ucsb.edu
    Dependable Computing Center   |  phone : (805) 893-8356
------------------------------------------------------------------------

+----------------------------------------------------------------------+
|  Dependable Computing Lab       |  email  : mcvittie@faulty.ucsb.edu |
|  Engineering I - ECE  #31       |                                    |
|  University of California       |  telefax : (805) 961-3262          |

emery@linus.mitre.org (David Emery) (11/29/90)

>From: aleph@lime.ucsb.edu (Thomas McVittie)
>I could use our VADS debugger and ask for a listing of tasks (lt).  But
>the programs which we are analyzing make extensive use of the CLOCK 
>function when scheduling events, so stopping and restarting the program
>dramatically change the behavior of the program.

I suspect you'll always have a problem trying to get the information
you want without affecting the basic program.  Ever hear of a guy
named Heisenberg?  

Your best bet is to get the information from the runtime environment,
which of course makes your code very non-portable.  

				dave emery
				emery@aries.mitre.org