diff options
| author | Jason Sams <rjsams@android.com> | 2010-03-18 11:39:44 -0700 |
|---|---|---|
| committer | Jason Sams <rjsams@android.com> | 2010-03-26 14:20:26 -0700 |
| commit | c1d726c2d62424867ec14f2cde16b00fe0ddfee1 (patch) | |
| tree | 96c26ed697d6c2331a9aa5b0a5e5706b9a1fa9ea /libs/rs/rsLocklessFifo.h | |
| parent | 3cfae1bbf41e12fe2749c5f4a97507c19a8beb1b (diff) | |
| download | frameworks_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.h | 24 |
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 |
