Index: fusl/src/malloc/DESIGN |
diff --git a/fusl/src/malloc/DESIGN b/fusl/src/malloc/DESIGN |
new file mode 100644 |
index 0000000000000000000000000000000000000000..58b0523ffdba15b8a0c493578458bc364f45857a |
--- /dev/null |
+++ b/fusl/src/malloc/DESIGN |
@@ -0,0 +1,22 @@ |
+ |
+ |
+In principle, this memory allocator is roughly equivalent to Doug |
+Lea's dlmalloc with fine-grained locking. |
+ |
+ |
+ |
+malloc: |
+ |
+Uses a freelist binned by chunk size, with a bitmap to optimize |
+searching for the smallest non-empty bin which can satisfy an |
+allocation. If no free chunks are available, it creates a new chunk of |
+the requested size and attempts to merge it with any existing free |
+chunk immediately below the newly created chunk. |
+ |
+Whether the chunk was obtained from a bin or newly created, it's |
+likely to be larger than the requested allocation. malloc always |
+finishes its work by passing the new chunk to realloc, which will |
+split it into two chunks and free the tail portion. |
+ |
+ |
+ |