Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

Mutex.txt

Go to the documentation of this file.
00001 phase-mutex:
00002  lock   : constructeur  (thread I)
00003           phase_code   apres "for" debut (thread II)
00004  unlock   : deliver (thread III)
00005                 if ( type != NEW, INIT )
00006                 if(mess_phase == curphase) {  
00007                                 if (cur_get->sendflag == 0)  XX
00008                                 
00009                 if ( type == NEW ) {
00010                         start_join( datapt, mess_size );   XX
00011                         
00012            broadcast fin (thread I)
00013            
00014  trylock   : phase_code  apres timeouts (thread II)
00015  
00016                 if (curphase != 1) phase_actions();
00017                 pthread_mutex_trylock(&phase_mutex);
00018                 
00019                 
00020 recv_mutex 
00021 lock    : deliver (thread III)
00022                 if(type == MESS || type == CMD || type == ACK || type == FAULT ) {
00023                         XX
00024                 else if( type == NACK ) {
00025                         XX      
00026           phase_actions  debut (thread II)
00027           phase_update  debut (thread II)
00028           
00029           
00030 unlock  : constructeur (thread I)
00031           deliver   (thread III)
00032                 if(type == MESS || type == CMD || type == ACK || type == FAULT
00033                         fin if(mess_phase == curphase) { 
00034                         fin if(mess_phase == curphase+1) { 
00035                         fin else
00036                 else if( type == NACK )
00037                         if (mess_phase == curphase) {
00038                                 if ( cur_get->sendflag == 0 )  {
00039                                 XX
00040                                 else 
00041                                 XX
00042                         else if (mess_phase == curphase - 1) 
00043                                 if
00044                                 XX
00045                                 else
00046                                 XX
00047                         else if (mess_phase == curphase - 1)
00048                                 XX
00049                         else
00050                                 XX
00051           phase_actions  fin (thread II)
00052           phase_update  fin (thread II)
00053           
00054 send_mutex : 
00055 lock    : broadcast debut (thread I)
00056         phase_code  avant send_buffer_advance() (thread II)
00057         get_first_to_send debut (thread II)
00058                 
00059 unlock  :constructeur (thread I)
00060         broadcast fin(thread I)
00061         phase_code  apres send_buffer_advance() (thread II)
00062         get_first_to_send fin (thread II)
00063         
00064         
00065 Thread III :
00066         no_prop_channel: read_socket 
00067         total_order_channel: deliver
00068                                         curphase (read)
00069                                         prev_get
00070                                         cur_get
00071                                         next_get
00072                                         status
00073         
00074 thread II :
00075         total_order_channel: phase_code
00076                                 phase_actions
00077                                 phase_update 
00078                                 get_first_to_send
00079                                 send_buffer_advance
00080 thread I :
00081         total_order_channel: constructeur 
00082                             broadcast

Generated at Mon Mar 1 18:05:54 2004 for Groupware by doxygen 1.1.1 written by Dimitri van Heesch, © 1997-2000