BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
PthrWriterBufPool.h
Go to the documentation of this file.
1#ifndef PTHR_WRITER_BUF_POOL_H
2#define PTHR_WRITER_BUF_POOL_H
3
7#include <semaphore.h>
8#include <pthread.h>
9
10template <typename Writer, int PoolSize = 8>
12{
13 public :
14
15 PthrWriterBufPool(typename Writer::WriterArgType& arg);
16 virtual ~PthrWriterBufPool();
17
18 int writeEvent(void* pevt, int size);
19 int stat();
20
21
22 private :
23
24 static void* thread_writing(void* arg);
25
26 PthrWriterBufPool(); //stop default
27
28
29 private :
30
31 int m_inLoop;
32 int m_outLoop;
33 AutoEnlargeBuffer* m_buf[PoolSize];
34
35 Writer* m_writer;
36
37 pthread_t m_tid;
38 sem_t m_semIn;
39 sem_t m_semOut;
40
41 sem_t m_semFinalize;
42};
43
45
46#endif
double arg(const EvtComplex &c)
#define private
int writeEvent(void *pevt, int size)