mirror of https://git.ffmpeg.org/ffmpeg.git
avutil/get_pool: Remove redundant initial atomic operation
602->442 dezicycles Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
9cde9f70ab
commit
e3be7b1159
|
@ -239,14 +239,14 @@ void av_buffer_pool_uninit(AVBufferPool **ppool)
|
||||||
/* remove the whole buffer list from the pool and return it */
|
/* remove the whole buffer list from the pool and return it */
|
||||||
static BufferPoolEntry *get_pool(AVBufferPool *pool)
|
static BufferPoolEntry *get_pool(AVBufferPool *pool)
|
||||||
{
|
{
|
||||||
BufferPoolEntry *cur = NULL, *last = NULL;
|
BufferPoolEntry *cur = *(void * volatile *)&pool->pool, *last = NULL;
|
||||||
|
|
||||||
do {
|
while (cur != last) {
|
||||||
FFSWAP(BufferPoolEntry*, cur, last);
|
FFSWAP(BufferPoolEntry*, cur, last);
|
||||||
cur = avpriv_atomic_ptr_cas((void * volatile *)&pool->pool, last, NULL);
|
cur = avpriv_atomic_ptr_cas((void * volatile *)&pool->pool, last, NULL);
|
||||||
if (!cur)
|
if (!cur)
|
||||||
return NULL;
|
return NULL;
|
||||||
} while (cur != last);
|
}
|
||||||
|
|
||||||
return cur;
|
return cur;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue