소스 검색

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 */