Ignore:
Timestamp:
05/01/13 11:22:54 (12 years ago)
Author:
tbretz
Message:
Make sure that if processing is terminated, also empty buffers (events without any data) are treated.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/EventBuilder.c

    r15470 r15471  
    13401340          evtCtrl[idx].board[board] = board;
    13411341          evtCtrl[idx].nBoard++;
    1342           evtCtrl[idx].evtStat  = evtCtrl[idx].nBoard;
     1342          evtCtrl[idx].evtStat = evtCtrl[idx].nBoard;
    13431343
    13441344          // have we already reported first (partial) event of this run ???
     
    14241424
    14251425          // Check the less likely case: 'useless' or 'delete'
     1426          // evtState==0 can happen if the event was initialized (some data received)
     1427          // but the data did not make sense (e.g. inconsistent rois)
    14261428          if (evtCtrl[k0].evtStat==0 || evtCtrl[k0].evtStat >= 9000)
    14271429          {
     
    14301432
    14311433              if (k0==evtCtrl_frstPtr)
    1432               {
    1433                   evtCtrl_frstPtr++;
    1434                   evtCtrl_frstPtr %= MAX_EVT * MAX_RUN;
    1435               }
     1434                  evtCtrl_frstPtr = (evtCtrl_frstPtr+1) % MAX_EVT * MAX_RUN;
    14361435              else
    1437                   factPrintf(kDebug, -1, "Freed a non-first slot");
     1436                  factPrintf(kError, -1, "Freed a non-first slot");
    14381437
    14391438              gj.evtWrite++;
     
    15461545         for (int k0=evtCtrl_frstPtr; k0!=evtCtrl_lastPtr; k0++, k0 %= MAX_EVT*MAX_RUN)
    15471546         {
    1548              if (evtCtrl[k0].evtStat > minclear)
     1547             if (evtCtrl[k0].evtStat==0 || evtCtrl[k0].evtStat > minclear)
    15491548             {
    15501549                 mBufFree(k0);   //event written--> free memory
     
    15521551
    15531552                 if (k0==evtCtrl_frstPtr)
    1554                  {
    1555                      evtCtrl_frstPtr++;
    1556                      evtCtrl_frstPtr %= MAX_EVT * MAX_RUN;
    1557                  }
     1553                     evtCtrl_frstPtr = (evtCtrl_frstPtr+1) % MAX_EVT * MAX_RUN;
    15581554                 else
    1559                      factPrintf(kDebug, -1, "Freed a non-first slot");
     1555                     factPrintf(kError, -1, "Freed a non-first slot");
     1556
     1557                 continue;
    15601558             }
    1561              else
    1562                  if (evtCtrl[k0].evtStat > 0)
    1563                      numclear++;      //writing is still ongoing...
     1559
     1560             if (evtCtrl[k0].evtStat > 0)
     1561                 numclear++;      //writing is still ongoing...
    15641562         }
    15651563
Note: See TracChangeset for help on using the changeset viewer.