Index: trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- trunk/FACT++/src/EventBuilderWrapper.h	(revision 15604)
+++ trunk/FACT++/src/EventBuilderWrapper.h	(revision 15605)
@@ -85,5 +85,5 @@
     uint32_t fLastOpened;
     uint32_t fLastClosed;
-    uint32_t fNumEvts[4];
+    array<uint32_t,4> fNumEvts;
 
     DimWriteStatistics  fDimWriteStats;
@@ -111,4 +111,5 @@
     Queue<pair<Time,GUI_STAT>> fDimQueue1;
     Queue<tuple<Time,bool,FAD::EventHeader>> fDimQueue2;
+    Queue<pair<Time,array<uint32_t,4>>> fDimQueue3;
     
     bool fDebugStream;
@@ -269,4 +270,5 @@
         fDimQueue1(std::bind(&EventBuilderWrapper::factStatSend, this, placeholders::_1)),
         fDimQueue2(std::bind(&EventBuilderWrapper::procHeader, this, placeholders::_1)),
+        fDimQueue3(std::bind(&EventBuilderWrapper::updateEvents, this, placeholders::_1)),
         fDebugStream(false), fDebugRead(false), fDebugLog(false), fNightAsInt(0)
     {
@@ -276,5 +278,5 @@
         This = this;
 
-        memset(fNumEvts, 0, sizeof(fNumEvts));
+        memset(fNumEvts.data(), 0, sizeof(fNumEvts));
         fDimEvents.Update(fNumEvts);
 
@@ -637,4 +639,10 @@
     vector<DataProcessorImp*> fFiles;
 
+    void updateEvents(const pair<Time,array<uint32_t>,4>> &stat)
+    {
+        fDimEvents.setData(stat.second.data(), sizeof(uint32_t)*4);
+        fDimEvents.Update(stat.first);
+    }
+
     FileHandle_t runOpen(uint32_t runid, RUN_HEAD *h, size_t)
     {
@@ -710,5 +718,5 @@
 
         fNumEvts[kCurrent] = 0;
-        fDimEvents.Update(fNumEvts);
+        fDimQueue3.post(fNumEvts);
         // fDimCurrentEvent.Update(uint32_t(0));
 
@@ -736,5 +744,6 @@
         if (newt>oldt+boost::posix_time::seconds(1))
         {
-            fDimEvents.Update(fNumEvts);
+            fDimQueue3.post(fNumEvts);
+            //fDimEvents.Update(fNumEvts);
             oldt = newt;
         }
@@ -796,5 +805,6 @@
         UpdateRuns();
 
-        fDimEvents.Update(fNumEvts);
+        fDimQueue3.post(fNumEvts);
+        //fDimEvents.Update(fNumEvts);
 
 
