Changeset 5375


Ignore:
Timestamp:
Jun 12, 2011, 9:26:25 PM (9 years ago)
Author:
_network
Message:

stapi: add log messages for debug and change lock behavior

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/module-dvbapi.c

    r5373 r5375  
    12741274
    12751275    signal=signal; //avoid compiler warnings
    1276     cs_lock(&event_handler_lock);
     1276
     1277    if (pthread_mutex_trylock(&event_handler_lock) == EBUSY)
     1278        return;
    12771279
    12781280    int32_t standby_fd = open(STANDBY_FILE, O_RDONLY);
     
    12811283
    12821284    if (cfg.dvbapi_boxtype==BOXTYPE_IPBOX || cfg.dvbapi_pmtmode == 1) {
    1283         cs_unlock(&event_handler_lock);
     1285        pthread_mutex_unlock(&event_handler_lock);
    12841286        return;
    12851287    }
     
    13101312
    13111313    if (disable_pmt_files) {
    1312         cs_unlock(&event_handler_lock);
     1314        pthread_mutex_unlock(&event_handler_lock);
    13131315        return;
    13141316    }
     
    13171319    if (!dirp) {
    13181320        cs_log("opendir failed (errno=%d %s)", errno, strerror(errno));
    1319         cs_unlock(&event_handler_lock);
     1321        pthread_mutex_unlock(&event_handler_lock);
    13201322        return;
    13211323    }
     
    13721374            if (sscanf((char*)mbuf+j2, "%02X", dest+j1) != 1) {
    13731375                cs_log("error parsing QboxHD pmt.tmp, data not valid in position %d",j2);
    1374                 cs_unlock(&event_handler_lock);
     1376                pthread_mutex_unlock(&event_handler_lock);
    13751377                return;
    13761378            }
     
    14081410    }
    14091411    closedir(dirp);
    1410     cs_unlock(&event_handler_lock);
     1412    pthread_mutex_unlock(&event_handler_lock);
    14111413}
    14121414
     
    16451647    }
    16461648
     1649    pthread_mutex_init(&event_handler_lock, NULL);
     1650
    16471651    if (cfg.dvbapi_pmtmode != 4 && cfg.dvbapi_pmtmode != 5) {
    16481652        struct sigaction signal_action;
     
    16511655        signal_action.sa_flags = SA_RESTART;
    16521656        sigaction(SIGRTMIN + 1, &signal_action, NULL);
    1653 
    1654         pthread_mutexattr_t attr;
    1655         pthread_mutexattr_init(&attr);
    1656         pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
    1657         pthread_mutex_init(&event_handler_lock, &attr);
    16581657
    16591658        dir_fd = open(TMPDIR, O_RDONLY);
     
    19641963    int32_t i;
    19651964
    1966     cs_lock(&filter_lock);
     1965    pthread_mutex_lock(&filter_lock);
     1966
     1967    cs_log("stapi shutdown");
    19671968
    19681969    disable_pmt_files=1;
     
    19811982    }
    19821983
    1983     cs_unlock(&filter_lock);
     1984    pthread_mutex_unlock(&filter_lock);
    19841985    sleep(2);
    19851986    return;
     
    22732274                break;
    22742275            case 852042: // ERROR_SIGNAL_ABORTED
     2276                cs_log("Caught abort signal");
    22752277                pthread_exit(NULL);
    22762278                break;
     
    23132315            continue;
    23142316
    2315         cs_lock(&filter_lock);
     2317        pthread_mutex_lock(&filter_lock); // don't use cs_lock() here; multiple threads using same s_client struct
    23162318        for(k=0;k<NumFilterMatches;k++) {
    23172319            for (i=0;i<MAX_DEMUX;i++) {
     
    23262328            }
    23272329        }
    2328         cs_unlock(&filter_lock);   
     2330        pthread_mutex_unlock(&filter_lock);
    23292331    }
    23302332    pthread_cleanup_pop(0);
Note: See TracChangeset for help on using the changeset viewer.