40 std::recursive_mutex lock;
41 ev::async asyncProgress;
48 void async_progressed();
53 void produce(
bool sync);
72 std::vector<MsgChunck> chuncks;
void async_updateRequirement(const SerializationRequirement &n)
SerializationStatus asyncStatus
bool getContent(MsgChunckIterator &position, void *&data, ssize_t &nsend, std::vector< int > &sharedBuffers)
virtual bool generateContentAsync() const =0
MsgQueue * blockedProducer
void collectRequirements(SerializationRequirement &req)
std::list< void * > ownBuffers
void blockReceiver(MsgQueue *toblock)
bool requestContent(const MsgChunckIterator &position)
std::set< MsgQueue * > awaiters
virtual void generateContent()=0
void advance(MsgChunckIterator &position, ssize_t s)
void addAwaiter(MsgQueue *awaiter)
void release(MsgQueue *from)
void async_pushChunck(const MsgChunck &m)