def test_alloc_free(): map_size = 65536 data = alloc(map_size) for i in range(0, map_size, 171): data[i] = chr(i & 0xff) for i in range(0, map_size, 171): assert data[i] == chr(i & 0xff) madvise_free(data, map_size) free(data, map_size)
def madvise_arena_free(baseaddr, size): from rpython.rlib import rmmap pagesize = posixpagesize.get() baseaddr = rffi.cast(lltype.Signed, baseaddr) aligned_addr = (baseaddr + pagesize - 1) & ~(pagesize - 1) size -= (aligned_addr - baseaddr) if size >= pagesize: rmmap.madvise_free(rffi.cast(rmmap.PTR, aligned_addr), size & ~(pagesize - 1))