daan
4df01218e2
fix msvc compilation with new atomics
2020-09-05 10:03:37 -07:00
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
7c2b79bef0
Merge branch 'dev' into dev-slice
2020-09-05 09:17:59 -07:00
daan
50de0d2358
fix C++ compilation with new atomics
2020-09-05 09:17:42 -07:00
daan
97f56b1e08
merge from dev
2020-09-04 14:21:33 -07:00
daan
f107acb3c8
fix __cplusplus test (pr #287 )
2020-09-04 10:40:05 -07:00
daan
f6109765d8
update whitespace and comments
2020-09-03 15:04:40 -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
76a68cd7af
bump version to 1.6.6 with new atomics
2020-09-03 09:45:53 -07:00
daan
b4825372ab
small compilation warning fixes (extra semicolon etc)
2020-08-29 19:30:38 -07:00
daan
8033b62979
allow overriding MI_MAX_ALIGN_SIZE
2020-08-29 09:59:15 -07:00
daan
e4ddc75069
set delayed decommit mask more precisely to only decommit currently committed blocks
2020-08-28 08:46:51 -07:00
daan
2cffc3b851
merge from dev
2020-08-27 22:43:57 -07:00
daan
5805c39916
enable --std=c99 compilation; fix mingw compilation
2020-08-09 17:55:17 -07:00
daan
ac0c121c68
update documentation for 1.6.4 release
2020-07-27 08:55:26 -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
a468430772
strengthen memory order of bit operations; insert memory fences
2020-07-26 14:19:30 -07:00
daan
a9f46dc86f
reduce memory order constraints for better efficiency on ARM etc
2020-07-26 11:58:02 -07:00
daan
ebf951e851
extra checks for atomic ptr exchange; extend mi_atomic_yield for win32
2020-07-26 00:15:57 -07:00
daan
95afd0509f
make segment abandoned_next atomic; tsan passes without warnings now (issue #130 )
2020-07-25 23:50:22 -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
e27422adca
switch to using C++ atomics in MSVC as well
2020-07-25 20:55:45 -07:00
daan
afe29cb8f5
fix ub on shift, issue #279
2020-07-25 19:33:02 -07:00
daan
a9a21f39d8
fix memory order for CAS failure, issue #130
2020-07-23 15:52:02 -07:00
daan
b74caddcc1
fix memory order to acq_rel for atomic and/or, issue #130 , thanks @mpoeter!
2020-07-23 15:00:49 -07:00
daan
8aa18d3661
fix TSAN warning for statistics maximum, issue #130
2020-07-22 14:16:18 -07:00
daan
444afa934f
fix memory order for weak CAS, issue #130 , thanks @mary3000!
2020-07-22 13:58:00 -07:00
daan
2e1b4f512d
make max update in the stats atomic
2020-07-22 13:45:04 -07:00
daan
c5406f327e
move include 'limits.h' outside of definition
2020-07-21 18:51:25 -07:00
David Carlier
0c550d1626
illumos support/build fix and large page support
2020-07-10 03:26:14 +01:00
daan
cb05ef9f2c
merge from dev
2020-05-19 10:43:46 -07:00
daan
a7d2bc8ad6
edit warning messages to be more consistent
2020-05-19 10:16:28 -07:00
daan
53aa46890a
merge from dev
2020-05-05 10:54:59 -07:00
daan
cefc930f72
bump version to 1.6.4 for further development
2020-05-05 10:47:46 -07:00
daan
e5b72cdfe7
reduce segment size and increase cache
2020-05-02 22:22:35 -07:00
daan
69158f2c76
roll back again to new arena cache: previous perf regression was caused due to accidentally making secure mode default
2020-05-02 12:04:36 -07:00
daan
b8846f7a27
fix unprotect of guard pages
2020-05-02 10:51:10 -07:00
daan
dcb3574cf0
fix assertions for huge segment free
2020-05-01 21:14:41 -07:00
daan
5cfdc39ff1
remove on-demand page commit option
2020-04-30 18:23:33 -07:00
daan
dad3be3c64
update comments
2020-04-30 17:21:36 -07:00
daan
0d25493c39
segment size to 16MiB to improve perf on mstress and rptest
2020-04-28 16:50:03 -07:00
daan
1b0de9b4cf
merge from dev
2020-04-28 16:22:38 -07:00
Anton Korobeynikov
079b886feb
Add cmake option to specify whether warnings / errors are enabled by default.
...
Currently warnings / errors are enabled by default in debug build.
Otherwise they could be enabled only via environmental variable or
API option call. Add possibility to specify the default during the
build time. This simplifies e.g. integration of the library into
bigger projects as no source changes would be required.
2020-04-28 16:44:44 +03:00
daan
3484cda169
bump version to 1.6.3 for further development
2020-04-20 18:01:39 -07:00
daan
d102882bdf
bump version to 1.6.2
2020-04-20 17:59:13 -07:00
daan
69a0846478
add MI_PADDING flag to cmake to supress use of padding in debug mode
2020-04-07 10:01:18 -07:00
daan
0a3e5bb699
further fixes to compile on mingw without warnings (issue #217 )
2020-04-06 10:56:53 -07:00
daan
50bfacdb71
fix mingw compilation by using export definitions (issue #217 )
2020-04-06 09:53:29 -07:00
daan
cfeee53389
remove accidental include file
2020-03-16 16:44:29 -07:00
daan
1f396e64a0
merge from dev
2020-03-16 16:41:21 -07:00
daan
7745dde8d2
allow retirement for all object sizes (issue #212 )
2020-03-16 15:31:37 -07:00
daan
82684042be
bump version to 1.6.1
2020-02-17 10:10:22 -08:00
daan
f2ac272baa
strengthen alignment check for memalign and aligned_alloc
2020-02-17 09:59:11 -08:00
daan
67de2549cf
fix build with clang-cl due to _Check_return_ (issue #200 )
2020-02-14 09:40:56 -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
f42b8526d0
fix wrong __declspec(restrict) and __attribute__((malloc)) attributes on reallocation functions
2020-02-13 10:36:39 -08:00
daan
04f1c3b1e2
bump version to v1.6.0
2020-02-09 18:53:39 -08:00
daan
a96e94f940
change TLS slot on OpenBSD
2020-02-02 22:46:38 -08:00
daan
3560e0a867
fix TLS slot number on OSX
2020-02-02 22:15:09 -08:00
daan
1c2e0a47ca
fix noexcept attribute on array delete operators
2020-02-02 22:04:53 -08:00
daan
f3c47c7c91
improved malloc zone handling on macOSX (not working yet)
2020-02-02 21:03:09 -08:00
daan
757dcc8411
extend interpose for macOSX
2020-02-02 19:07:26 -08:00
daan
12c4108abe
update comments
2020-02-02 16:09:09 -08:00
daan
07fbe4f80f
fixes for dragonfly
2020-02-02 14:31:28 -08:00
daan
8bc20631e4
fixes for freeBSD
2020-02-02 13:25:26 -08:00
daan
d2db9f1fc2
update thread local storage
2020-02-02 13:12:22 -08:00
daan
bb64634e4e
Merge branch 'dev-exp' into dev-exp-tls
2020-02-01 17:48:57 -08:00
daan
bf2eb55ed1
reformatting
2020-02-01 17:48:26 -08:00
daan
8aba40a972
use default declaration for the STL allocator class
2020-02-01 17:41:04 -08:00
daan
3f17ac287c
add 'nodiscard' attribute to mimalloc interface
2020-02-01 17:29:30 -08:00
daan
0989562c2d
add initial fast tls for macOSX
2020-02-01 16:57:00 -08:00
daan
fea903900d
use __thread locals on linux
2020-02-01 14:33:34 -08:00
daan
a169cf0e3f
merge dev-exp; add pthread TLS support for macOSX
2020-02-01 14:10:10 -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
40f1e1e07b
byte-precise heap block overflow checking with encoded padding
2020-01-31 23:39:51 -08:00
daan
68112a2751
better padding implementation, more precise statistics
2020-01-31 20:34:24 -08:00
daan
4531367de2
fix padding check for aligned allocation; improve perf for small aligned allocations
2020-01-31 13:20:02 -08:00
daan
f820fae858
merge from dev; add retired collect on abandon
2020-01-30 07:24:35 -08:00
daan
a7c69ccbea
fix stat accounting of segments with huge blocks
2020-01-30 06:25:42 -08:00
daan
ed1c8a203a
improve performance with tls recursion counter
2020-01-29 23:08:52 -08:00
daan
03b363a1c2
first working tls on macOS using interpose; still slow
2020-01-29 22:46:44 -08:00
daan
5d212d688f
add MI_PADDING build option to add padding to each block to detect heap block overflows
2020-01-29 17:10:57 -08:00
daan
b50bec463d
merge from dev-exp; better abandoned reclamation
2020-01-27 22:12:23 -08:00
daan
e628fc7067
cleanup reclaim logic
2020-01-26 12:39:11 -08:00
daan
5e32d00aab
add visit count to abandoned to limit list length
2020-01-25 12:26:08 -08:00
daan
b31bc52618
add cache alignment directives for contended variables
2020-01-24 19:02:13 -08:00
daan
4a2a0c2d50
initial abandon based on fine-grained reclamation
2020-01-23 19:50:35 -08:00
daan
c9106e74a8
remove __thread attribute from mimalloc.h
2020-01-23 11:06:25 -08:00
daan
6fb434a99b
use -fvisibility=hidden on clang as well
2020-01-23 10:31:47 -08:00
daan
a46d20a681
merge with new atomic macros
2020-01-22 20:53:44 -08:00
daan
e226ebcc97
Merge branch 'dev' into dev-arena
2020-01-22 20:39:33 -08:00
daan
e3b16fe4ef
reduce type casts in atomic operations
2020-01-22 19:44:54 -08:00
daan
0f14f431c5
bump version to 1.5 for further development
2020-01-22 18:33:07 -08:00
Daan Leijen
caa5e51a67
align size of page_t, increase slices per segment
2020-01-22 11:29:32 -08:00
daan
0028272cf4
small fixes, reduced segment size, fix merge conflicts
2020-01-20 22:33:29 -08:00
daan
394a7a92ab
merge from dev
2020-01-20 19:06:08 -08:00
daan
3957b2fd28
add mi_new_realloc(n) to support C++ style reallocation that raises std::bad_alloc on out-of-memory
2020-01-20 15:41:56 -08:00