Changeset 3601
- Timestamp:
- 10/17/10 18:01:21 (13 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-stat.c
r3592 r3601 97 97 &stat->rc, &stat->caid, &stat->prid, &stat->srvid, &stat->time_avg, &stat->ecm_count, &stat->last_received); 98 98 if (i > 4) { 99 ll ist_append(reader_stat[ridx], stat);99 ll_append(reader_stat[ridx], stat); 100 100 } 101 101 else … … 111 111 pthread_mutex_lock(&stat_busy); 112 112 if (!reader_stat[ridx]) { 113 reader_stat[ridx] = ll ist_create();113 reader_stat[ridx] = ll_create(); 114 114 if (cfg->lb_save) 115 115 load_stat_from_file(ridx); 116 116 } 117 117 118 LLIST_D__ITR itr;119 READER_STAT *stat = llist_itr_init(reader_stat[ridx], &itr);120 while ( stat) {118 LL_ITER *it = ll_iter_create(reader_stat[ridx]); 119 READER_STAT *stat; 120 while ((stat = ll_iter_next(it))) { 121 121 if (stat->caid==caid && stat->prid==prid && stat->srvid==srvid) { 122 122 pthread_mutex_unlock(&stat_busy); 123 ll_iter_release(it); 123 124 return stat; 124 125 } 125 126 stat = llist_itr_next(&itr); 127 } 126 } 127 ll_iter_release(it); 128 128 pthread_mutex_unlock(&stat_busy); 129 129 return NULL; … … 140 140 pthread_mutex_lock(&stat_busy); 141 141 int c = 0; 142 LLIST_D__ITR itr;143 READER_STAT *stat = llist_itr_init(reader_stat[ridx], &itr);144 while ( stat) {142 LL_ITER *it = ll_iter_create(reader_stat[ridx]); 143 READER_STAT *stat; 144 while ((stat = ll_iter_next(it))) { 145 145 if (stat->caid==caid && stat->prid==prid && stat->srvid==srvid) { 146 free(stat); 147 stat = llist_itr_remove(&itr); 146 ll_iter_remove_data(it); 148 147 c++; 149 148 } 150 else 151 stat = llist_itr_next(&itr); 152 } 149 } 150 ll_iter_release(it); 153 151 clear_from_cache(caid); 154 152 pthread_mutex_unlock(&stat_busy); … … 184 182 char fname[256]; 185 183 sprintf(fname, "%s/stat.%d", get_tmp_dir(), ridx); 186 if (!reader_stat[ridx] || !ll ist_count(reader_stat[ridx])) {184 if (!reader_stat[ridx] || !ll_count(reader_stat[ridx])) { 187 185 remove(fname); 188 186 pthread_mutex_unlock(&stat_busy); … … 190 188 } 191 189 192 LLIST_D__ITR itr; 193 READER_STAT *stat = llist_itr_init(reader_stat[ridx], &itr); 194 195 if (!stat) { 190 LL_ITER *it = ll_iter_create(reader_stat[ridx]); 191 READER_STAT *stat = ll_iter_next(it); 192 if (!stat) { 196 193 remove(fname); 197 194 pthread_mutex_unlock(&stat_busy); 195 ll_iter_release(it); 198 196 return; 199 197 } … … 202 200 if (!file) { 203 201 pthread_mutex_unlock(&stat_busy); 202 ll_iter_release(it); 204 203 return; 205 204 } 206 205 207 while ( stat) {206 while ((stat = ll_iter_next(it))) { 208 207 fprintf(file, "rc %d caid %04hX prid %06lX srvid %04hX time avg %dms ecms %d last %ld\n", 209 208 stat->rc, stat->caid, stat->prid, stat->srvid, stat->time_avg, stat->ecm_count, stat->last_received); 210 stat = llist_itr_next(&itr); 211 } 209 } 210 ll_iter_release(it); 211 212 212 fclose(file); 213 213 pthread_mutex_unlock(&stat_busy); … … 237 237 stat->srvid = srvid; 238 238 stat->time_avg = UNDEF_AVG_TIME; //dummy placeholder 239 ll ist_append(reader_stat[ridx], stat);239 ll_append(reader_stat[ridx], stat); 240 240 } 241 241 … … 535 535 536 536 pthread_mutex_lock(&stat_busy); 537 538 LLIST_D__ITR itr; 539 READER_STAT *stat = llist_itr_init(reader_stat[ridx], &itr); 540 while (stat) { 541 free(stat); 542 stat = llist_itr_remove(&itr); 543 } 544 llist_destroy(reader_stat[ridx]); 545 reader_stat[ridx] = NULL; 546 547 pthread_mutex_unlock(&stat_busy); 548 } 537 538 ll_destroy_data(reader_stat[ridx]); 539 540 reader_stat[ridx] = NULL; 541 542 pthread_mutex_unlock(&stat_busy); 543 } -
trunk/module-stat.h
r3592 r3601 1 1 #include "globals.h" 2 #include " module-obj-llist.h"2 #include "oscam-datastruct-llist.h" 3 3 4 LLIST _D_*reader_stat[CS_MAXREADER];4 LLIST *reader_stat[CS_MAXREADER]; 5 5 static pthread_mutex_t stat_busy; 6 6
Note:
See TracChangeset
for help on using the changeset viewer.