ソースを参照

memalign(): break if freelist_memalign returns a block

Ioannis Koutras 12 年 前
コミット
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 */