コード例 #1
0
ファイル: RingBuffer.cpp プロジェクト: iiiCode/VideoPlayer
void RingBuffer::destroy()
{
    if (mReadIndex <= mWriteIndex) {
        for (int i = mReadIndex; i < mWriteIndex; i ++) {
            mDestroyFunc(mRingBuffer[i]);
        }
    } else {
        for (int i = 0; i < mWriteIndex; i ++) {
            mDestroyFunc(mRingBuffer[i]);
        }
        
        for (int i = mReadIndex; i < RING_BUFFER_SIZE; i ++) {
            mDestroyFunc(mRingBuffer[i]);
        }
    }
    
    mReadIndex = 0;
    mWriteIndex = 0;
    
#ifdef ANDROID_PLATFORM
    sem_destroy(&mWriteSem);
    sem_destroy(&mReadSem);
#else
    sem_close(mReadSem);
    sem_close(mWriteSem);
#endif
}
コード例 #2
0
void PluginLoader<T>::deleteInstance(T *data){
	if(loaded()){
		mDestroyFunc(data);
	}
	return;
}