daan
644e453709
Merge branch 'dev' into dev-slice
2020-09-05 09:37:38 -07:00
daan
2e311f341b
fix msvc compilation in C mode
2020-09-05 09:37:09 -07:00
daan
03071dec0f
merge from dev-atomic with new atomic interface
2020-09-03 12:13:09 -07:00
daan
900c97664a
merge from dev-atomic
2020-09-03 09:47:01 -07:00
daan
2cffc3b851
merge from dev
2020-08-27 22:43:57 -07:00
daan
9e7322f900
collect memory on process exit for statically linked library (issue #281
2020-07-29 21:27:01 -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
1f396e64a0
merge from dev
2020-03-16 16:41:21 -07:00
daan
e981e9227e
ensure thread delayed freeing is correct during heap_absorb; #204
2020-02-13 13:12:19 -08:00
daan
af37302e83
add assertions
2020-02-13 12:27:06 -08:00
daan
8a2a52843d
delete all thread owned heaps when a thread is terminated (issue #202 )
2020-02-13 12:15:23 -08:00
daan
946a71c4a9
fix issue #204 (and #205 ) by doing thread delayed free after absorbing the pages
2020-02-13 11:37:48 -08:00
daan
edff9d4fbb
merge from dev-win (padding)
2020-02-01 12:32:59 -08:00
daan
aa68b8cbc7
improve encoding of padding canary and buffer overflow detection
2020-02-01 12:16:37 -08:00
daan
f820fae858
merge from dev; add retired collect on abandon
2020-01-30 07:24:35 -08:00
daan
b50bec463d
merge from dev-exp; better abandoned reclamation
2020-01-27 22:12:23 -08:00
daan
4a2a0c2d50
initial abandon based on fine-grained reclamation
2020-01-23 19:50:35 -08:00
daan
12701b1aac
do not reclaim segments on collect
2020-01-23 15:48:51 -08:00
daan
76e727f7d1
fix assertion on page destroy
2020-01-23 15:39:38 -08:00
daan
66818bf632
use atomic yield on delayed-freeing; clarify code
2020-01-23 09:57:55 -08:00
daan
e226ebcc97
Merge branch 'dev' into dev-arena
2020-01-22 20:39:33 -08:00
daan
3bbbe6c686
enable atomic yield when delayed_freeing is encountered
2020-01-22 20:12:42 -08:00
daan
394a7a92ab
merge from dev
2020-01-20 19:06:08 -08:00
daan
b8072aaacb
fix debug build
2020-01-16 03:54:51 -08:00
daan
0099707af9
use delayed free for all pages; reduce size of the page structure for improved address calculation
2020-01-15 17:19:01 -08:00
daan
4a27ea1643
merge from dev
2020-01-13 18:01:34 -08:00
daan
8f75444e7a
fix windows debug build at MI_DEBUG=2
2020-01-08 23:21:32 -08:00
daan
12ef2816ed
fix bug exposed by commit 59fa286
where reclaimed pages could be stuck to NEVER_DELAYED
2020-01-08 19:00:03 -08:00
daan
2b108c8748
increase retire expiration to 4
2020-01-03 21:39:18 -08:00
daan
e3391d9a53
stronger encoding of free lists using two keys per page
2019-12-28 00:57:42 -08:00
daan
ba87a39d9f
updated random cookie generation using OS primitives and chacha20
2019-12-22 19:37:49 -08:00
daan
1066be1594
merge from dev-exp
2019-11-21 17:03:30 -08:00
daan
17ade3fca5
merge from dev
2019-11-13 17:52:20 -08:00
daan
a4ed63d127
Adresses pr #165 and issue #164 by @colesbury:
...
On Mac OS, the thread-local _mi_default_heap may get reset before
_mi_thread_done is called, leaking the default heap on non-main threads.
Now the current default heap is also stored in mi_pthread_key (or mi_fls_key
on Windows). The _mi_thread_done function is called with this value.
2019-11-13 17:22:03 -08:00
daan
829fd872f4
initial delay slots
2019-11-04 11:48:41 -08:00
daan
2b005addd3
merge from dev-exp
2019-11-03 13:37:03 -08:00
daan
9d6a5acb22
fix unix build warnings
2019-11-03 13:34:54 -08:00
daan
4b15e2ed97
merge from dev
2019-10-17 18:24:35 -07:00
daan
23155c5d71
add recursion guard to deferred callback
2019-09-09 08:02:41 -07:00
daan
e227341f5b
fix mi_collect being called with empty heap (issue #150 )
2019-09-09 07:54:36 -07:00
daan
cd52d0a6d9
merge dev-win
2019-08-20 17:31:46 -07:00
daan
05631ebfc4
Merge branch 'dev' into dev-win
2019-08-19 21:23:04 -07:00
daan
b46bacc180
fix absorb heap (issue #132 )
2019-08-19 19:19:09 -07:00
Daan Leijen
367fb046ec
Merge branch 'dev' into dev-win
2019-08-16 18:40:56 -07:00
Daan Leijen
069c26dbab
fix small object size check in mi_segment_page_alloc
2019-08-16 18:40:30 -07:00
daan
f2bafbc57f
wip: new segment allocation
2019-08-15 11:49:56 -07:00
daan
bbd81bbbd1
wip: new segment allocation with flexible large objects
2019-08-15 00:46:45 -07:00
daan
6d11e59250
fix to avoid potential linear behavior in page collect
2019-08-14 07:46:38 -07:00
daan
dbe010f2d4
add huge and giant stats; increase bins
2019-08-10 20:51:37 -07:00
daan
6f3bc87dcd
merge from dev
2019-08-10 10:26:46 -07:00