Commit Graph

1624 Commits

Author SHA1 Message Date
Jim Huang
3402c6cc3f Revise the use of macOS predefined macro
Quoted from "Porting UNIX/Linux Applications to OS X,"[1]
* macro __MACH__ is defined if Mach system calls are supported;
* macro __APPLE__ is defined in any Apple computer.

__MACH__ is not specific to macOS since GNU/Hurd runs on a Mach-based
microkernel (gnumach) [2]. __MACH__ is defined by the compiler,
leading to potential confusions. The solution is just changing the
checked identifier (i.e. __APPLE__), so it is really used only on
macOS.

[1] https://developer.apple.com/library/archive/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html
[2] https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html
2021-04-21 15:24:02 +08:00
unknown
8311cef0d1 Fix typo in comment
it -> if in mimalloc-types.h
2021-04-17 15:08:25 -03:00
elbaro
ad44f76598 commit 2021-04-11 03:09:23 +09:00
Danny Lin
ad2fa2bf6f
Fix thread ID getter on Android ARM/AArch64
Android's Bionic libc stores the thread ID in TLS slot 1 instead of 0
on 32-bit ARM and AArch64. Slot 0 contains a pointer to the ELF DTV
(Dynamic Thread Vector) instead, which is constant for each loaded DSO.

Because mimalloc uses the thread ID to determine whether operations are
thread-local or cross-thread (atomic), all threads having the same ID
causes internal data structures to get corrupted quickly when multiple
threads are using the allocator:

mimalloc: assertion failed: at "external/mimalloc/src/page.c":563, mi_page_extend_free
  assertion: "page->local_free == NULL"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
  assertion: "page->used <= page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":100, mi_page_is_valid_init
  assertion: "page->used + free_count == page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
  assertion: "page->used <= page->capacity"

Add support for Android's alternate TLS layout to fix the crashes in
multi-threaded use cases.

Fixes #376.
2021-04-07 01:59:47 -07:00
Daan
b19da8e362
update readme for 1.7.1 and 2.0.1 2021-04-06 11:05:43 -07:00
Daan Leijen
34ba03951e merge from dev 2021-04-06 11:01:06 -07:00
Daan Leijen
c6f5092287 merge from dev 2021-04-06 11:00:28 -07:00
Daan Leijen
dc6bce256d bump version to v2.0.1 2021-04-06 10:58:12 -07:00
Daan Leijen
985f313b35 bump version to 1.7.1 2021-04-06 10:56:26 -07:00
Daan Leijen
4e643b6d31 merge from dev 2021-02-24 15:53:26 -08:00
Daan Leijen
5f596056c9 use 2-6TiB area for hints to accommodate pre-windows8 better 2021-02-24 15:49:43 -08:00
Daan Leijen
e64474e06b add virtiual gaps between hinted allocations in secure mode 2021-02-24 15:30:39 -08:00
Daan Leijen
ad96d220f4 merge from dev 2021-02-24 15:17:35 -08:00
Daan Leijen
9317256a4f improved ASLR (issue #372) 2021-02-24 15:14:17 -08:00
Daan Leijen
47050371a1 fix issue #363 and disable assertion for now 2021-02-22 15:05:47 -08:00
Daan Leijen
8f69e7095d Merge branch 'dev' into dev-slice 2021-02-22 14:28:22 -08:00
Daan Leijen
3228bb685f set errno ENOMEM for limited arena allocation (issue #295) 2021-02-22 14:17:25 -08:00
Daan Leijen
9f3c29c642 remove -march=native flag; see pr #362 for discussion 2021-02-22 13:09:41 -08:00
Daan Leijen
71ac98ab08 rename <Windows.h> include to <windows.h> for mingw compatibility (see pr #367) 2021-02-22 13:04:11 -08:00
Daan Leijen
7962420697 fix bug in bitmap is_claimed_across; issue #368 2021-02-22 12:37:08 -08:00
Daan Leijen
1b22da3c28 Merge branch 'dev' into dev-slice 2021-02-02 10:46:43 -08:00
Daan Leijen
331491e1e8 build fix for Apple M1 (issue #354 and pr #356) 2021-02-02 10:46:30 -08:00
Daan Leijen
ba84aa2783 Merge branch 'dev' into dev-slice 2021-02-01 15:47:37 -08:00
Daan Leijen
a7c33a3b0e fix getting the unique thread id on the Apple M1, see issue #354. 2021-02-01 15:47:22 -08:00
Daan Leijen
c426ab4ea2 add condition to avoid compilation error on vs2015 (#issue 353) 2021-02-01 15:41:41 -08:00
Daan Leijen
0091a641a7 undo previous commit dcae918 due to wrong logic (issue #289) 2021-02-01 09:55:18 -08:00
Daan Leijen
dcae918b84 always do ASLR in secure mode even in debug mode (issue #289) 2021-02-01 09:49:12 -08:00
Daan Leijen
2762784364 Merge branch 'dev' into dev-slice 2021-01-31 14:12:51 -08:00
Daan
15220c6843
Update readme for v2.0 2021-01-31 14:11:35 -08:00
Daan Leijen
bd56782f26 bump version to 2.0.0 2021-01-31 14:02:06 -08:00
Daan Leijen
8bcc60edd9 Merge branch 'dev' into dev-slice 2021-01-31 13:57:35 -08:00
Daan Leijen
92ead2d880 bump version to 1.7.0 2021-01-31 13:51:19 -08:00
Daan
599d6327ba
Update readme.md 2021-01-31 12:03:16 -08:00
Daan
89b7955afe
Update readme.md 2021-01-31 11:58:46 -08:00
Daan
706654f41b
Update readme.md 2021-01-31 11:58:22 -08:00
Daan
7f052290da
Update readme.md 2021-01-31 11:57:51 -08:00
Daan
620638cfaf
Update readme.md 2021-01-31 11:49:44 -08:00
Daan
2f04bec5d9
Update readme.md 2021-01-31 11:44:34 -08:00
Daan
9f31b49527
Update readme.md 2021-01-31 11:43:50 -08:00
Daan
9bacaa25c8
Update readme.md 2021-01-31 11:42:16 -08:00
Daan
08bd9d80d7
Update readme.md 2021-01-31 11:36:36 -08:00
Daan
6ccf695dcb
Update readme.md 2021-01-31 11:34:13 -08:00
Daan
bb92ee8520
Update readme.md 2021-01-31 11:32:54 -08:00
Daan Leijen
512cdd5aeb Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-01-31 11:29:32 -08:00
Daan Leijen
a1fb2a4957 add rss figures 2021-01-31 11:28:39 -08:00
Daan
a6bc463652
Update benchmark figures 2021-01-31 11:20:56 -08:00
Daan Leijen
558c8d085e update benchmark references 2021-01-31 10:23:57 -08:00
Daan Leijen
58678ac4eb move bench figures in separate folder 2021-01-31 10:21:17 -08:00
Daan Leijen
645659bb1f add new benchmark results 2021-01-31 10:16:18 -08:00
Daan Leijen
2aebb37fb0 merge from dev 2021-01-30 17:15:24 -08:00