Daan
2b0d039cf3
fix assertion check
2024-10-23 01:21:41 -07:00
Daan
925efaeac9
improve windows static library initialization to account for thread local destructors (issue #944 )
2024-10-23 01:10:00 -07:00
Daan
d951b4dd23
add missing mi_thread_done definition
2024-10-23 00:53:17 -07:00
Daan
6e9b38ac12
fix issue where searching for abandoned blocks would skip the first one
2024-10-22 18:58:55 -07:00
Daan
dfdb9cb877
cleanup process init/done
2024-10-22 06:52:34 -07:00
Daan
104e821709
fix fast divisor for 32-bit platforms
2024-10-22 06:08:56 -07:00
Daan
46e9e7fdd0
fix win32 compilation
2024-10-22 06:06:15 -07:00
Daan
e55ae0aeb7
fix duplicate definition on windows
2024-10-21 23:09:14 -07:00
Daan
f971bd6d74
fix build on windows
2024-10-21 23:05:51 -07:00
Daan
4377abe017
add cmake option to fall back on the fiber api do detect thread termination on windows
2024-10-21 22:59:41 -07:00
Daan
aa881733d7
reorganize primitives for process initialization; use special data segment on Windows for thread termination by default on Windows now (issue #869 )
2024-10-21 22:56:59 -07:00
Daan
34e66778ec
fix MI_EXTRA_CPPDEFS setting
2024-10-21 05:10:09 -07:00
Daan
50d3525a8c
add test for issue #944
2024-10-21 05:04:27 -07:00
Daan
638ea539de
allow certain options to have defaults set via the pre-processor at build time -- see issue #945
2024-10-21 05:04:01 -07:00
Daan
394e8c27d8
add cmake option to add C pre processor definitions more easily
2024-10-21 05:02:24 -07:00
ArtSin
bf251b27b1
Fix int and long handling and the use of (u)intptr_t in _mi_vsnprintf
...
'va_arg' with type 'long' was used for both 'int' and 'long' arguments, but x86_64 Linux has 64-bit 'long', so passing an 'int' argument to '_mi_vsnprintf` results in undefined behaviour.
'intptr_t' was used as the largest integer type, but on 32-bit systems it is 32-bit wide, while 'long long' is 64-bit. 'intmax_t' can be used instead.
2024-10-15 13:39:28 +04:00
Daan Leijen
a7e7cbac89
use enqueue_from_full, and keep inserting at the end
2024-10-09 15:15:57 -07:00
daanx
0316cb1d88
reduce page search to 8
2024-10-09 15:05:35 -07:00
daanx
cbc0e19809
revert back to unfull at the end of queues as it slows down some benchmarks (like alloc-test1)
2024-10-09 14:41:12 -07:00
daanx
96877159c2
insert full pages that became unfull, at the start of the page queue to increase potential reuse
2024-10-09 14:35:33 -07:00
daanx
a05b5ab0a1
search N pages for a best fit
2024-10-09 14:21:50 -07:00
daanx
ffa8bce581
prefer pages that do not expand
2024-10-09 11:27:57 -07:00
Philip Brown
f38816d4ed
Musl needs __libc* functions too
2024-10-06 15:42:46 -05:00
Zhihua Lai
95f8fda113
Fix typo
2024-08-30 19:58:57 +01:00
Ikko Eltociear Ashimine
cd0c4ab67c
docs: update readme.md
...
speficic -> specific
2024-08-23 00:31:14 +09:00
Daan
db3d8485d2
increase TSAN test to 400 iterations
2024-08-21 17:13:51 -07:00
Daan
d8e0cb1a37
increase test timeout for azure pipeline
2024-08-21 17:01:05 -07:00
Daan
bb3976760f
add guarded build to test pipeline
2024-08-21 15:34:22 -07:00
Daan
51025f1ac2
set lower parameters for guarded test
2024-08-21 15:29:32 -07:00
Daan Leijen
4234a9bd9d
Merge branch 'dev-guarded' into dev
2024-08-21 11:30:33 -07:00
Daan Leijen
58e743b83f
fix use_guarded signature
2024-08-21 11:30:00 -07:00
Daan Leijen
cc4dc1bb53
add comments
2024-08-21 11:26:12 -07:00
Daan Leijen
96f7cc4ef2
clean up guarded allocation
2024-08-21 11:21:25 -07:00
Daan Leijen
631ff581af
set compile as C++ in VS IDE
2024-08-21 10:47:38 -07:00
Daan Leijen
b9b529de28
shuffle for 128 bit
2024-08-21 10:45:19 -07:00
daanx
b5c6495f69
don't consider memory as large OS pages if only madvise'd
2024-08-20 15:58:36 -07:00
Daan Leijen
f130808b5c
fix warnings
2024-08-20 12:58:49 -07:00
daanx
8899a11c70
clean up guarded pages code
2024-08-20 11:09:17 -07:00
daanx
635cf7af6a
fix multi-threaded free to unprotect guarded blocks
2024-08-20 09:55:57 -07:00
daanx
0c19eb60cf
initial working guarded pages
2024-08-19 21:21:40 -07:00
Daan
5eb8c752f7
fix UINT32_MAX constant (see issue #913 )
2024-08-13 16:36:53 -07:00
Michael Neumann
9c9efc417d
Fix build on FreeBSD-derivate DragonFly
2024-07-26 12:11:21 +02:00
Rui Ueyama
566b2c51fc
Add a missing #include
...
This change fixes the "implicit declaration of function 'getenv'" warning.
Since stdlib.h is completely portable, as it is defined by the C standard,
we can safely include it unconditionally.
2024-07-22 09:43:43 +09:00
Daan
7b5df14bea
initial work on guarded objects
2024-07-16 09:15:59 -07:00
QuarticCat
632421da3a
fix typos
2024-06-19 10:49:03 +08:00
daanx
265767766b
fix alignment test
2024-06-17 16:22:07 -07:00
daanx
b7dd5d6564
add extra assertions to check that blocks are always aligned to MI_MAX_ALIGN_SIZE
2024-06-17 16:17:03 -07:00
Danny Lin
e8b5e51b00
Change macOS mmap tag to fix conflict with IOAccelerator
...
Tag 100 is assigned to "IOAccelerator" (the GPU driver stack on Apple silicon), which makes for confusing output when debugging.
To avoid conflicts, use a tag in the reserved application-specific range from 240–255 (inclusive).
All assigned tags: 94d3b45284/osfmk/mach/vm_statistics.h (L773-L775)
2024-06-10 15:06:39 -07:00
Daan
03020fbf81
fix count/size order in mi_heap_alloc_new_n, issue #906
2024-06-04 17:28:04 -07:00
Daan
d68a7fc3e6
update docs
2024-06-04 17:04:33 -07:00