f = fsh->free_fifos[freelist_index];
if (PREDICT_FALSE (!f))
{
- /* Preallocated and no fifo left. Don't even try */
- if (fsh->flags & FIFO_SEGMENT_F_IS_PREALLOCATED)
- goto done;
-
oldheap = ssvm_push_heap (sh);
allocate_new_fifo_chunk (fsh, data_size_in_bytes,
FIFO_SEGMENT_ALLOC_CHUNK_SIZE);
{
ssvm_shared_header_t *sh;
svm_fifo_segment_header_t *fsh;
- void *oldheap;
int freelist_index;
ASSERT (f->refcnt > 0);
ASSERT (freelist_index < vec_len (fsh->free_fifos));
ssvm_lock_non_recursive (sh, 2);
- oldheap = ssvm_push_heap (sh);
switch (list_index)
{
}
fsh->n_active_fifos--;
- ssvm_pop_heap (oldheap);
ssvm_unlock_non_recursive (sh);
}