From: hades Date: Sun, 21 Nov 1999 15:13:32 +0000 (+0000) Subject: 32K blocks via the network X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=8dd2a4f42be5cf3c4004900efb94d0197bca72b6;p=daqdata.git 32K blocks via the network --- diff --git a/hadaq/readout.c b/hadaq/readout.c index 76d695f..86c6e07 100644 --- a/hadaq/readout.c +++ b/hadaq/readout.c @@ -1,4 +1,4 @@ -static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.4 1999-11-19 16:00:18 hades Exp $"; +static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.5 1999-11-21 15:13:32 hades Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -37,6 +37,8 @@ void main(int argc, char *argv[]) void *subEvt; Worker *worker; ShmTrans *shmTrans; + void *hadTu; + HadTuQueue *hadTuQueue; int i; int isStandalone; char *outPath; @@ -92,20 +94,24 @@ void main(int argc, char *argv[]) Worker_initEnd(worker); + hadTuQueue = allocMem(HadTuQueue_sizeOf()); + hadTu = ShmTrans_alloc(shmTrans, 32 * 1024); + conHadTuQueue(hadTuQueue, hadTu, 32 * 1024); while (setjmp(terminateJmp) == 0) { - void *hadTu; - HadTuQueue *hadTuQueue; Worker_dump(worker, 1); - hadTu = ShmTrans_alloc(shmTrans, queueSize - HadTu_hdrSize()); #ifndef NDEBUG - msglog(LOG_DEBUG, "shmTrans: %p = hadTu: %s\n", hadTu, HadTu_2charP(hadTu)); + msglog(LOG_DEBUG, + "shmTrans: %p = hadTu: %s\n", hadTu, HadTu_2charP(hadTu)); #endif - hadTuQueue = allocMem(HadTuQueue_sizeOf()); - conHadTuQueue(hadTuQueue, hadTu, queueSize - HadTu_hdrSize()); Hardware_waitForTrigger(hw); for (i = 0; Hardware_subEvtId(hw, i) != SubEvtId_invalid; i++) { - subEvt = HadTuQueue_alloc(hadTuQueue, Hardware_maxSubEvtSize(hw, i)); + while (NULL == (subEvt = HadTuQueue_alloc(hadTuQueue, Hardware_maxSubEvtSize(hw, i)))) { + desHadTuQueue(hadTuQueue); + ShmTrans_send(shmTrans); + hadTu = ShmTrans_alloc(shmTrans, 32 * 1024); + conHadTuQueue(hadTuQueue, hadTu, 32 * 1024); + } Hardware_readout(hw, i, subEvt); SubEvt_setTrigNr(subEvt, (*trigAccepted << 8) | (SubEvt_trigNr(subEvt) & 0xff)); @@ -120,10 +126,10 @@ void main(int argc, char *argv[]) HadTuQueue_push(hadTuQueue); } (*trigAccepted)++; - desHadTuQueue(hadTuQueue); - freeMem(hadTuQueue); - ShmTrans_send(shmTrans); } + desHadTuQueue(hadTuQueue); + ShmTrans_send(shmTrans); + freeMem(hadTuQueue); Worker_fini(worker); ShmTrans_close(shmTrans);