@@ -106,48 +106,50 @@ <h2 class="memtitle"><span class="permalink"><a href="#a60d1e2bdc5c39558234c421a
106106< div class ="line "> < span class ="lineno "> 30</ span > < span class ="keywordtype "> unsigned</ span > < span class ="keywordtype "> long</ span > *avg;</ div >
107107< div class ="line "> < span class ="lineno "> 31</ span > < span class ="keywordtype "> unsigned</ span > < span class ="keywordtype "> long</ span > *bufforAvg;</ div >
108108< div class ="line "> < span class ="lineno "> 32</ span > < span class ="keyword "> struct </ span > < a class ="code hl_struct " href ="structproc__stat.html "> proc_stat</ a > *stats;</ div >
109- < div class ="line "> < span class ="lineno "> 33</ span > </ div >
109+ < div class ="line "> < span class ="lineno "> 33</ span > </ div >
110110< div class ="line "> < span class ="lineno "> 34</ span > (void)arg;</ div >
111- < div class ="line "> < span class ="lineno "> 35</ span > </ div >
112- < div class ="line "> < span class ="lineno "> 36</ span > < span class ="keywordflow "> if</ span > ((prev = malloc((< span class ="keywordtype "> unsigned</ span > < span class ="keywordtype "> long</ span > )g_nproc * < span class ="keyword "> sizeof</ span > (< span class ="keyword "> struct</ span > < a class ="code hl_struct " href ="structproc__stat.html "> proc_stat</ a > ))) == NULL) { </ div >
113- < div class ="line "> < span class ="lineno "> 37</ span > < span class =" keywordflow " > return </ span > NULL; </ div >
114- < div class ="line "> < span class ="lineno "> 38</ span > } </ div >
115- < div class ="line "> < span class ="lineno "> 39</ span > < span class =" keywordflow " > if </ span > ((avg = malloc(( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > )g_nproc * < span class =" keyword " > sizeof </ span > ( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > ))) == NULL) { </ div >
116- < div class ="line "> < span class ="lineno "> 40</ span > free(prev); </ div >
117- < div class ="line "> < span class ="lineno "> 41</ span > < span class =" keywordflow " > return </ span > NULL ;</ div >
118- < div class ="line "> < span class ="lineno "> 42</ span > } </ div >
119- < div class ="line "> < span class ="lineno "> 43</ span > pthread_cleanup_push(free, prev) </ div >
120- < div class ="line "> < span class ="lineno "> 44</ span > pthread_cleanup_push(free, avg)</ div >
121- < div class ="line "> < span class ="lineno "> 45</ span > < span class ="keywordflow " > while </ span > (1) { </ div >
122- < div class ="line "> < span class ="lineno "> 46</ span > notify_watchdog(Analyzer); </ div >
123- < div class ="line "> < span class ="lineno "> 47</ span > </ div >
124- < div class ="line "> < span class ="lineno "> 48</ span > sem_wait (&g_dataFilledSpaceSemaphore );</ div >
125- < div class ="line "> < span class ="lineno "> 49</ span > pthread_mutex_lock(&g_dataBufferMutex); </ div >
126- < div class ="line "> < span class ="lineno "> 50</ span > </ div >
127- < div class ="line "> < span class ="lineno "> 51</ span > stats = get_item_from_data_buffer(); </ div >
128- < div class ="line "> < span class ="lineno "> 52</ span > < span class =" keywordflow " > for </ span > ( < span class =" keywordtype " > int </ span > i = 0; i < g_nproc; i++) { </ div >
129- < div class ="line "> < span class ="lineno "> 53</ span > avg [i] = average_cpu_usage(prev[i], stats[i]) ;</ div >
130- < div class ="line "> < span class ="lineno "> 54</ span > prev[i] = stats[i]; </ div >
131- < div class ="line "> < span class ="lineno "> 55</ span > } </ div >
132- < div class ="line "> < span class ="lineno "> 56</ span > </ div >
133- < div class ="line "> < span class ="lineno "> 57</ span > pthread_mutex_unlock (&g_dataBufferMutex );</ div >
134- < div class ="line "> < span class ="lineno "> 58</ span > sem_post(&g_dataLeftSpaceSemaphore); </ div >
135- < div class ="line "> < span class ="lineno "> 59</ span > </ div >
136- < div class ="line "> < span class ="lineno "> 60</ span > < span class =" comment " > // </ span > </ div >
137- < div class ="line "> < span class ="lineno "> 61</ span > </ div >
138- < div class ="line "> < span class ="lineno "> 62</ span > sem_wait (&g_printLeftSpaceSemaphore );</ div >
139- < div class ="line "> < span class ="lineno "> 63</ span > pthread_mutex_lock(&g_printBufferMutex); </ div >
140- < div class ="line "> < span class ="lineno "> 64</ span > </ div >
141- < div class ="line "> < span class ="lineno "> 65</ span > bufforAvg = get_item_from_print_buffer( );</ div >
142- < div class ="line "> < span class ="lineno "> 66</ span > memcpy(bufforAvg, avg, ( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > )g_nproc * < span class =" keyword " > sizeof </ span > ( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > )); </ div >
143- < div class ="line "> < span class ="lineno "> 67</ span > </ div >
144- < div class ="line "> < span class ="lineno "> 68</ span > pthread_mutex_unlock (&g_printBufferMutex );</ div >
145- < div class ="line "> < span class ="lineno "> 69</ span > sem_post(&g_printFilledSpaceSemaphore); </ div >
146- < div class ="line "> < span class ="lineno "> 70</ span > } </ div >
111+ < div class ="line "> < span class ="lineno "> 35</ span > </ div >
112+ < div class ="line "> < span class ="lineno "> 36</ span > < span class ="keywordflow "> if</ span > ((prev = malloc((< span class ="keywordtype "> unsigned</ span > < span class ="keywordtype "> long</ span > )g_nproc * < span class ="keyword "> sizeof</ span > (< span class ="keyword "> struct</ span > < a class ="code hl_struct " href ="structproc__stat.html "> proc_stat</ a > ))) ==</ div >
113+ < div class ="line "> < span class ="lineno "> 37</ span > NULL) { </ div >
114+ < div class ="line "> < span class ="lineno "> 38</ span > < span class =" keywordflow " > return </ span > NULL; </ div >
115+ < div class ="line "> < span class ="lineno "> 39</ span > } </ div >
116+ < div class ="line "> < span class ="lineno "> 40</ span > < span class =" keywordflow " > if </ span > ((avg = malloc(( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > )g_nproc * < span class =" keyword " > sizeof </ span > ( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > ))) == NULL) { </ div >
117+ < div class ="line "> < span class ="lineno "> 41</ span > free(prev) ;</ div >
118+ < div class ="line "> < span class ="lineno "> 42</ span > < span class =" keywordflow " > return </ span > NULL; </ div >
119+ < div class ="line "> < span class ="lineno "> 43</ span > } </ div >
120+ < div class ="line "> < span class ="lineno "> 44</ span > pthread_cleanup_push(free, prev) pthread_cleanup_push(free, avg) < span class =" keywordflow " > while </ span > (1) { </ div >
121+ < div class ="line "> < span class ="lineno "> 45</ span > < a class ="code hl_function " href =" cputracker_8c.html#ac99b6069bf629214ce6258902739d613 " > notify_watchdog </ a > (Analyzer); </ div >
122+ < div class ="line "> < span class ="lineno "> 46</ span > </ div >
123+ < div class ="line "> < span class ="lineno "> 47</ span > sem_wait(&g_dataFilledSpaceSemaphore); </ div >
124+ < div class ="line "> < span class ="lineno "> 48</ span > pthread_mutex_lock (&g_dataBufferMutex );</ div >
125+ < div class ="line "> < span class ="lineno "> 49</ span > </ div >
126+ < div class ="line "> < span class ="lineno "> 50</ span > stats = < a class =" code hl_function " href =" cputracker_8c.html#a6d7b4993bb9144e4cab9f9c7420c996a " > get_item_from_data_buffer </ a > (); </ div >
127+ < div class ="line "> < span class ="lineno "> 51</ span > < span class =" keywordflow " > for </ span > ( < span class =" keywordtype " > int </ span > i = 0; i < g_nproc; i++) { </ div >
128+ < div class ="line "> < span class ="lineno "> 52</ span > avg[i] = average_cpu_usage(prev[i], stats[i]); </ div >
129+ < div class ="line "> < span class ="lineno "> 53</ span > prev [i] = stats[i];</ div >
130+ < div class ="line "> < span class ="lineno "> 54</ span > } </ div >
131+ < div class ="line "> < span class ="lineno "> 55</ span > </ div >
132+ < div class ="line "> < span class ="lineno "> 56</ span > pthread_mutex_unlock(&g_dataBufferMutex); </ div >
133+ < div class ="line "> < span class ="lineno "> 57</ span > sem_post (&g_dataLeftSpaceSemaphore );</ div >
134+ < div class ="line "> < span class ="lineno "> 58</ span > </ div >
135+ < div class ="line "> < span class ="lineno "> 59</ span > < span class =" comment " > // </ span > </ div >
136+ < div class ="line "> < span class ="lineno "> 60</ span > </ div >
137+ < div class ="line "> < span class ="lineno "> 61</ span > sem_wait(&g_printLeftSpaceSemaphore); </ div >
138+ < div class ="line "> < span class ="lineno "> 62</ span > pthread_mutex_lock (&g_printBufferMutex );</ div >
139+ < div class ="line "> < span class ="lineno "> 63</ span > </ div >
140+ < div class ="line "> < span class ="lineno "> 64</ span > bufforAvg = < a class =" code hl_function " href =" cputracker_8c.html#a2b8f2341417ff6536dcfd85113bd3a5d " > get_item_from_print_buffer </ a > (); </ div >
141+ < div class ="line "> < span class ="lineno "> 65</ span > memcpy( bufforAvg, avg, ( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > )g_nproc * < span class =" keyword " > sizeof </ span > ( < span class =" keywordtype " > unsigned </ span > < span class =" keywordtype " > long </ span > ) );</ div >
142+ < div class ="line "> < span class ="lineno "> 66</ span > </ div >
143+ < div class ="line "> < span class ="lineno "> 67</ span > pthread_mutex_unlock(&g_printBufferMutex); </ div >
144+ < div class ="line "> < span class ="lineno "> 68</ span > sem_post (&g_printFilledSpaceSemaphore );</ div >
145+ < div class ="line "> < span class ="lineno "> 69</ span > } </ div >
146+ < div class ="line "> < span class ="lineno "> 70</ span > pthread_cleanup_pop(1); </ div >
147147< div class ="line "> < span class ="lineno "> 71</ span > pthread_cleanup_pop(1);</ div >
148- < div class ="line "> < span class ="lineno "> 72</ span > pthread_cleanup_pop(1);</ div >
149- < div class ="line "> < span class ="lineno "> 73</ span > }</ div >
150- < div class ="ttc " id ="astructproc__stat_html "> < div class ="ttname "> < a href ="structproc__stat.html "> proc_stat</ a > </ div > < div class ="ttdoc "> Use brief, otherwise the index won't have a brief explanation.</ div > < div class ="ttdef "> < b > Definition:</ b > < a href ="cputracker_8h_source.html#l00028 "> cputracker.h:28</ a > </ div > </ div >
148+ < div class ="line "> < span class ="lineno "> 72</ span > }</ div >
149+ < div class ="ttc " id ="acputracker_8c_html_a2b8f2341417ff6536dcfd85113bd3a5d "> < div class ="ttname "> < a href ="cputracker_8c.html#a2b8f2341417ff6536dcfd85113bd3a5d "> get_item_from_print_buffer</ a > </ div > < div class ="ttdeci "> unsigned long * get_item_from_print_buffer(void)</ div > < div class ="ttdoc "> Function getting item in print buffer.</ div > < div class ="ttdef "> < b > Definition:</ b > < a href ="cputracker_8c_source.html#l00079 "> cputracker.c:79</ a > </ div > </ div >
150+ < div class ="ttc " id ="acputracker_8c_html_a6d7b4993bb9144e4cab9f9c7420c996a "> < div class ="ttname "> < a href ="cputracker_8c.html#a6d7b4993bb9144e4cab9f9c7420c996a "> get_item_from_data_buffer</ a > </ div > < div class ="ttdeci "> struct proc_stat * get_item_from_data_buffer(void)</ div > < div class ="ttdoc "> Function getting item in data buffer.</ div > < div class ="ttdef "> < b > Definition:</ b > < a href ="cputracker_8c_source.html#l00069 "> cputracker.c:69</ a > </ div > </ div >
151+ < div class ="ttc " id ="acputracker_8c_html_ac99b6069bf629214ce6258902739d613 "> < div class ="ttname "> < a href ="cputracker_8c.html#ac99b6069bf629214ce6258902739d613 "> notify_watchdog</ a > </ div > < div class ="ttdeci "> void notify_watchdog(int id)</ div > < div class ="ttdoc "> Notify the watchdog that thread is alive.</ div > < div class ="ttdef "> < b > Definition:</ b > < a href ="cputracker_8c_source.html#l00089 "> cputracker.c:89</ a > </ div > </ div >
152+ < div class ="ttc " id ="astructproc__stat_html "> < div class ="ttname "> < a href ="structproc__stat.html "> proc_stat</ a > </ div > < div class ="ttdoc "> Struct for /proc/stats info.</ div > < div class ="ttdef "> < b > Definition:</ b > < a href ="cputracker_8h_source.html#l00030 "> cputracker.h:30</ a > </ div > </ div >
151153</ div > <!-- fragment -->
152154</ div >
153155</ div >
0 commit comments