summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsLocklessFifo.h
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-03-18 11:39:44 -0700
committerJason Sams <rjsams@android.com>2010-03-26 14:20:26 -0700
commitc1d726c2d62424867ec14f2cde16b00fe0ddfee1 (patch)
tree96c26ed697d6c2331a9aa5b0a5e5706b9a1fa9ea /libs/rs/rsLocklessFifo.h
parent3cfae1bbf41e12fe2749c5f4a97507c19a8beb1b (diff)
downloadframeworks_base-c1d726c2d62424867ec14f2cde16b00fe0ddfee1.zip
frameworks_base-c1d726c2d62424867ec14f2cde16b00fe0ddfee1.tar.gz
frameworks_base-c1d726c2d62424867ec14f2cde16b00fe0ddfee1.tar.bz2
Seperate out Mutex and Signal code into reusable classes.
Change-Id: I381d09d89b567d433a10a91e0d7e59c24d3444d8
Diffstat (limited to 'libs/rs/rsLocklessFifo.h')
-rw-r--r--libs/rs/rsLocklessFifo.h24
1 files changed, 5 insertions, 19 deletions
diff --git a/libs/rs/rsLocklessFifo.h b/libs/rs/rsLocklessFifo.h
index d0a4356..ae906ca 100644
--- a/libs/rs/rsLocklessFifo.h
+++ b/libs/rs/rsLocklessFifo.h
@@ -19,8 +19,10 @@
#include "rsUtils.h"
+#include "rsSignal.h"
namespace android {
+namespace renderscript {
// A simple FIFO to be used as a producer / consumer between two
@@ -37,24 +39,7 @@ public:
LocklessCommandFifo();
~LocklessCommandFifo();
-
protected:
- class Signal {
- public:
- Signal();
- ~Signal();
-
- bool init();
-
- void set();
- void wait();
-
- protected:
- bool mSet;
- pthread_mutex_t mMutex;
- pthread_cond_t mCondition;
- };
-
uint8_t * volatile mPut;
uint8_t * volatile mGet;
uint8_t * mBuffer;
@@ -65,14 +50,14 @@ protected:
Signal mSignalToWorker;
Signal mSignalToControl;
-
-
public:
void * reserve(uint32_t bytes);
void commit(uint32_t command, uint32_t bytes);
void commitSync(uint32_t command, uint32_t bytes);
void flush();
+ void wait();
+
const void * get(uint32_t *command, uint32_t *bytesData);
void next();
@@ -88,4 +73,5 @@ private:
}
+}
#endif