Changeset 11331
- Timestamp:
- 01/14/17 11:38:58 (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r11329 r11331 1762 1762 } 1763 1763 1764 static pthread_mutex_t lockindex = PTHREAD_MUTEX_INITIALIZER; 1765 1764 1766 ca_index_t dvbapi_get_descindex(int32_t demux_index, int32_t pid, int32_t stream_id) 1765 1767 { … … 1767 1769 ca_index_t idx = 0; 1768 1770 uint32_t tmp_idx; 1769 1770 static pthread_mutex_t lockindex;1771 static int8_t init_mutex = 0;1772 1773 if(init_mutex == 0)1774 {1775 SAFE_MUTEX_INIT(&lockindex, NULL);1776 init_mutex = 1;1777 }1778 1771 1779 1772 if(cfg.dvbapi_boxtype == BOXTYPE_NEUMO) … … 1998 1991 1999 1992 memset(&demux[demux_id], 0 , sizeof(DEMUXTYPE)); 1993 SAFE_MUTEX_INIT(&demux[demux_id].answerlock, NULL); 2000 1994 for(i = 0; i < ECM_PIDS; i++) 2001 1995 { … … 4077 4071 } 4078 4072 4079 static pthread_mutex_t event_handler_lock; 4080 static int8_t init_mutex = 0; 4073 static pthread_mutex_t event_handler_lock = PTHREAD_MUTEX_INITIALIZER; 4081 4074 4082 4075 void event_handler(int32_t UNUSED(signal)) … … 4089 4082 uchar mbuf[2048]; // dirty fix: larger buffer needed for CA PMT mode 6 with many parallel channels to decode 4090 4083 if(dvbapi_client != cur_client()) { return; } 4091 4092 if(init_mutex == 0)4093 {4094 SAFE_MUTEX_INIT(&event_handler_lock, NULL);4095 init_mutex = 1;4096 }4097 4084 4098 4085 SAFE_MUTEX_LOCK(&event_handler_lock); … … 5179 5166 for(i = 0; i < MAX_DEMUX; i++) 5180 5167 { 5168 SAFE_MUTEX_INIT(&demux[i].answerlock, NULL); 5181 5169 for(j = 0; j < ECM_PIDS; j++) 5182 5170 { … … 5186 5174 } 5187 5175 } 5176 demux[i].pidindex = -1; 5177 demux[i].curindex = -1; 5188 5178 } 5189 5179 … … 5983 5973 5984 5974 if(er->rc < E_NOTFOUND && cfg.dvbapi_requestmode == 1 && er->caid != 0) // FOUND 5985 { 5986 if(demux[i].init_mutex == 0) 5987 { 5988 SAFE_MUTEX_INIT(&demux[i].answerlock, NULL); 5989 demux[i].init_mutex = 1; 5990 } 5991 5975 { 5992 5976 SAFE_MUTEX_LOCK(&demux[i].answerlock); // only process one ecm answer 5993 5977 -
trunk/module-dvbapi.h
r11329 r11331 210 210 uint8_t old_emmfiltercount; // previous emm filtercount 211 211 pthread_mutex_t answerlock; // requestmode 1 avoid race 212 int8_t init_mutex;213 212 #ifdef WITH_STAPI 214 213 uint32_t DescramblerHandle[PTINUM];
Note:
See TracChangeset
for help on using the changeset viewer.