Просмотр исходного кода

memalign(): break if freelist_memalign returns a block

Ioannis Koutras лет назад: 12
Родитель
Сommit
e02c7be41f
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      src/memalign.c

+ 4 - 0
src/memalign.c

@@ -70,6 +70,10 @@ void *memalign(size_t alignment, size_t size) {
                 ((uintptr_t) raw_block + sizeof(raw_block_header_t));
             memptr = freelist_memalign(encapsulated_rb, alignment, size);
             UNLOCK_RAW_BLOCK(raw_block);
+
+            if(memptr != NULL) {
+                break;
+            }
 #ifdef TRYLOCK_ON_MALLOC
         }
 #endif /* TRYLOCK_ON_MALLOC */