Mercurial > hg > Game > Cerium
view TaskManager/kernel/ppe/SynchronizedMailManager.h @ 2054:2e7a6f40672f draft
add param(4) in FileMapReduce.cc
author | masa |
---|---|
date | Fri, 29 Jan 2016 15:56:28 +0900 |
parents | d28f0c5489c3 |
children |
line wrap: on
line source
#ifndef INCLUDED_SYNC_MAIL_MANAGER #define INCLUDED_SYNC_MAIL_MANAGER #include <pthread.h> #include "MailManager.h" #include "types.h" #include "Sem.h" class SynchronizedMailManager : public MailManager { public: /* constructor */ SynchronizedMailManager(unsigned int qsize = 32); ~SynchronizedMailManager(); /* functions */ void send(memaddr data); memaddr recv(); int count(); virtual void set_waiter(SemPtr w); private: /* variables */ memaddr *queue; SemPtr queue_remain; SemPtr queue_count; SemPtr ppe_waiter; // shared among all synchronizedMailManager unsigned int size; unsigned int read; unsigned int write; unsigned int mask; void calc_mask(unsigned int qsize); void extend(); } ; typedef SynchronizedMailManager *SynchronizedMailManagerPtr; #endif