Ticket #2011: 2011.patch

File 2011.patch, 2.5 KB (added by danielk, 18 years ago)

possible fix

  • programs/mythbackend/mainserver.cpp

     
    13061306    return NULL;
    13071307}
    13081308
    1309 void MainServer::DoDeleteThread(DeleteStruct *ds)
     1309void MainServer::DoDeleteThread(const DeleteStruct *ds)
    13101310{
    13111311    // sleep a little to let frontends reload the recordings list
    13121312    // after deleteing a recording, then we can hammer the DB and filesystem
     
    14131413    /* Delete preview thumbnail. */
    14141414    delete_file_immediately(ds->filename + ".png", followLinks, true);
    14151415
     1416    DoDeleteInDB(ds, pginfo);
     1417
     1418    if (pginfo->recgroup != "LiveTV")
     1419        ScheduledRecording::signalChange(0);
     1420
     1421    delete pginfo;
     1422
     1423    deletelock.unlock();
     1424
     1425    if (fd != -1)
     1426    {
     1427        m_expirer->TruncatePending();
     1428        TruncateAndClose(m_expirer, fd, ds->filename);
     1429        m_expirer->TruncateFinished();
     1430    }
     1431}
     1432
     1433void MainServer::DoDeleteInDB(const DeleteStruct *ds,
     1434                              const ProgramInfo *pginfo)
     1435{
     1436    QString logInfo = QString("chanid %1 at %2")
     1437        .arg(ds->chanid).arg(ds->recstartts.toString());
     1438
    14161439    MSqlQuery query(MSqlQuery::InitCon());
    14171440    query.prepare("DELETE FROM recorded WHERE chanid = :CHANID AND "
    14181441                  "title = :TITLE AND starttime = :STARTTIME;");
     
    14881511                           QString("Error deleting recordedmarkup for %1.")
    14891512                                   .arg(logInfo));
    14901513    }
    1491 
    1492     if (pginfo->recgroup != "LiveTV")
    1493         ScheduledRecording::signalChange(0);
    1494 
    1495     delete pginfo;
    1496 
    1497     deletelock.unlock();
    1498 
    1499     if (fd != -1)
    1500     {
    1501         m_expirer->TruncatePending();
    1502         TruncateAndClose(m_expirer, fd, ds->filename);
    1503         m_expirer->TruncateFinished();
    1504     }
    15051514}
    15061515
    15071516/** \fn DeleteFile(const QString&,bool)
  • programs/mythbackend/mainserver.h

     
    140140    QString LocalFilePath(QUrl &url);
    141141
    142142    static void *SpawnDeleteThread(void *param);
    143     void DoDeleteThread(DeleteStruct *ds);
     143    void DoDeleteThread(const DeleteStruct *ds);
     144    void DoDeleteInDB(const DeleteStruct *ds, const ProgramInfo *pginfo);
    144145
    145146    LiveTVChain *GetExistingChain(QString id);
    146147    LiveTVChain *GetExistingChain(MythSocket *sock);