Commit graph

188 commits

Author SHA1 Message Date
Daan
3eb616f2bf fix bug in secure mode where adjustment would make the page size less than the blocksize on the first page of a segment 2022-11-06 14:51:06 -08:00
daan
f788e3c9a3 add comment 2022-11-06 14:18:52 -08:00
Daan
f54e64365f fix assertions with incorrect block size for large alignments 2022-11-06 09:44:12 -08:00
daan
a200291ae5 further progress on removing aligned limit 2022-11-06 08:26:17 -08:00
daan
4b91ff760d initial working large alignment 2022-11-05 16:40:42 -07:00
daan
6a80fa3ac1 initial progress on removing alignment limit 2022-11-05 14:46:52 -07:00
daan
698bb2cae7 split out _mi_page_try_use_delayed_free for contention reduction (issue #630) 2022-10-31 11:01:01 -07:00
daan
7bef5f5f5b reduce contention on the delayed_free lock; see issue #630 2022-10-31 10:34:55 -07:00
daan
b48040e20a set pages to noaccess explicitly for valgrind precision 2022-10-30 12:23:11 -07:00
Daan Leijen
7bc602ebb4 redefine mi_likely/mi_unlikely to work with C++ 20 [[likely]] attributes 2022-04-19 19:50:06 -07:00
Daan Leijen
d69d4c861f add zero parameter to primitive allocation to improve codegen for calloc etc 2022-04-19 18:32:35 -07:00
Daan Leijen
5613ffb508 use heap_stat_increase macros when possible 2022-04-04 17:38:28 -07:00
Daan
a4303c6931 fix link error to _mi_bin with C++; issue #533 2022-01-22 10:08:16 -08:00
Daan
de11349820 remove spurious check and add further assertions (issue #526) 2022-01-16 12:20:32 -08:00
Daan Leijen
d508c3d618 ensure in debug mode that all allocated block are initialized with MI_DEBUG_UNINIT (issue #501) 2021-12-20 12:33:54 -08:00
daan
28896e5b19 prefix UNUSED,KiB,MiB,GiB; add mi_threadid_t type; add mi_ssize_t 2021-11-13 14:46:03 -08:00
Daan
e853f530a0 add noexcept attributes to improve mi_free codegen 2021-11-04 18:54:57 -07:00
Daan
ca9785d40e fix compilation with MI_DEBUG>3, issue #480 2021-10-27 10:06:34 -07:00
hank
1c1571742d fix typo 2021-06-21 22:36:47 +08:00
Daan Leijen
4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d9.
2021-06-07 16:47:57 -07:00
Daan Leijen
1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
Jim Huang
5940d3bcce Bump copyright date
Each source file has been changed according to relevant Git activities.
2021-04-24 16:35:11 +00:00
daan
5d2b925f3e wrap MI_SECURE conditional in #ifdef to avoid warnings (issue #311) 2020-10-11 10:56:57 -07:00
daan
ef8e5d18a6 replace atomics with C11/C++ atomics with explicit memory order; passes tsan. Issue #130 2020-07-26 18:01:33 -07:00
daan
a9f46dc86f reduce memory order constraints for better efficiency on ARM etc 2020-07-26 11:58:02 -07:00
daan
09ade02429 bring inline with C11 atomics; no volatile and cas order of expected/desired 2020-07-25 22:52:27 -07:00
daan
5a6d9ba807 fix handling of failing to allocate heap metadata on thread creation, issue #257 2020-06-17 19:07:32 -07:00
daan
a7d2bc8ad6 edit warning messages to be more consistent 2020-05-19 10:16:28 -07:00
daan
29cb8f369a slight cleanup of f10ba4fa, #239 2020-05-05 10:24:16 -07:00
Daan
f10ba4fa44
Merge pull request #239 from asl/oom-collect
In OOM case try to force collect memory and retry the allocation
2020-05-05 10:16:28 -07:00
daan
9c0da9776d fix assertion for huge block size 2020-05-03 11:43:57 -07:00
daan
097c007ba3 reduce page retire cycles based on object size 2020-05-02 00:19:20 -07:00
daan
5cfdc39ff1 remove on-demand page commit option 2020-04-30 18:23:33 -07:00
Anton Korobeynikov
fdd1cd821a In OOM case try to force collect memory and retry the allocation. 2020-04-29 02:10:11 +03:00
daan
7745dde8d2 allow retirement for all object sizes (issue #212) 2020-03-16 15:31:37 -07:00
daan
baf08e8d54 fix size check on overflow when padding is enabled in debug mode 2020-02-17 09:59:34 -08:00
daan
9749c83ca0 fix build with debug and secure both enabled, issue #203 2020-02-13 09:16:41 -08:00
daan
aa68b8cbc7 improve encoding of padding canary and buffer overflow detection 2020-02-01 12:16:37 -08:00
daan
68112a2751 better padding implementation, more precise statistics 2020-01-31 20:34:24 -08:00
daan
b3dae128de Merge branch 'dev' into dev-exp 2020-01-27 23:15:37 -08:00
daan
9c166d88f0 increase retire page size 2020-01-27 23:15:24 -08:00
daan
e628fc7067 cleanup reclaim logic 2020-01-26 12:39:11 -08:00
daan
4a2a0c2d50 initial abandon based on fine-grained reclamation 2020-01-23 19:50:35 -08:00
daan
66818bf632 use atomic yield on delayed-freeing; clarify code 2020-01-23 09:57:55 -08:00
daan
3bbbe6c686 enable atomic yield when delayed_freeing is encountered 2020-01-22 20:12:42 -08:00
daan
e3b16fe4ef reduce type casts in atomic operations 2020-01-22 19:44:54 -08:00
daan
b77be05e40 only collect retired at fresh page allocation 2020-01-20 12:14:34 -08:00
daan
dc58388968 Add ability to register custom error function called on various error conditions; including ENOMEM 2020-01-17 19:59:55 -08:00
daan
c6037ac8f2 fix assertion index 2020-01-16 16:56:02 -08:00
daan
ad32eb1dfb eager collect on page reclamation 2020-01-15 17:57:19 -08:00