mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-01-14 08:37:59 +08:00
fix c++ compilation with new atomics for dev-slice
This commit is contained in:
parent
7c2b79bef0
commit
dc858f6d29
@ -95,11 +95,7 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
|
||||||
<<<<<<< HEAD
|
|
||||||
<PreprocessorDefinitions>MI_DEBUG=3;MI_SHARED_LIB;MI_SHARED_LIB_EXPORT;MI_MALLOC_OVERRIDE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
|
||||||
=======
|
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MI_SHARED_LIB;MI_SHARED_LIB_EXPORT;MI_MALLOC_OVERRIDE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MI_SHARED_LIB;MI_SHARED_LIB_EXPORT;MI_MALLOC_OVERRIDE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
||||||
>>>>>>> dev
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<SupportJustMyCode>false</SupportJustMyCode>
|
<SupportJustMyCode>false</SupportJustMyCode>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
@ -127,11 +123,7 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
|
||||||
<<<<<<< HEAD
|
|
||||||
<PreprocessorDefinitions>MI_DEBUG=3;MI_SHARED_LIB;MI_SHARED_LIB_EXPORT;MI_MALLOC_OVERRIDE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
|
||||||
=======
|
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MI_SHARED_LIB;MI_SHARED_LIB_EXPORT;MI_MALLOC_OVERRIDE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;MI_SHARED_LIB;MI_SHARED_LIB_EXPORT;MI_MALLOC_OVERRIDE;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
||||||
>>>>>>> dev
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<SupportJustMyCode>false</SupportJustMyCode>
|
<SupportJustMyCode>false</SupportJustMyCode>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
|
@ -179,7 +179,7 @@ static void* mi_cache_pop(int numa_node, size_t size, size_t alignment, bool* co
|
|||||||
*is_zero = false;
|
*is_zero = false;
|
||||||
bool committed = slot->is_committed;
|
bool committed = slot->is_committed;
|
||||||
slot->p = NULL;
|
slot->p = NULL;
|
||||||
mi_atomic_store_release(&slot->expire,0);
|
mi_atomic_store_release(&slot->expire,(mi_msecs_t)0);
|
||||||
if (*commit && !committed) {
|
if (*commit && !committed) {
|
||||||
bool commit_zero;
|
bool commit_zero;
|
||||||
_mi_os_commit(p, MI_SEGMENT_SIZE, &commit_zero, tld->stats);
|
_mi_os_commit(p, MI_SEGMENT_SIZE, &commit_zero, tld->stats);
|
||||||
@ -213,7 +213,7 @@ static void mi_cache_purge(mi_os_tld_t* tld) {
|
|||||||
expire = mi_atomic_load_acquire(&slot->expire);
|
expire = mi_atomic_load_acquire(&slot->expire);
|
||||||
if (expire != 0 && now >= expire) { // safe read
|
if (expire != 0 && now >= expire) { // safe read
|
||||||
// still expired, decommit it
|
// still expired, decommit it
|
||||||
mi_atomic_store_relaxed(&slot->expire,0);
|
mi_atomic_store_relaxed(&slot->expire,(mi_msecs_t)0);
|
||||||
mi_assert_internal(slot->is_committed && mi_bitmap_is_claimed(cache_available_large, MI_CACHE_FIELDS, 1, bitidx));
|
mi_assert_internal(slot->is_committed && mi_bitmap_is_claimed(cache_available_large, MI_CACHE_FIELDS, 1, bitidx));
|
||||||
_mi_abandoned_await_readers(); // wait until safe to decommit
|
_mi_abandoned_await_readers(); // wait until safe to decommit
|
||||||
_mi_os_decommit(slot->p, MI_SEGMENT_SIZE, tld->stats);
|
_mi_os_decommit(slot->p, MI_SEGMENT_SIZE, tld->stats);
|
||||||
@ -254,7 +254,7 @@ static bool mi_cache_push(void* start, size_t size, size_t memid, bool is_commit
|
|||||||
mi_cache_slot_t* slot = &cache[mi_bitmap_index_bit(bitidx)];
|
mi_cache_slot_t* slot = &cache[mi_bitmap_index_bit(bitidx)];
|
||||||
slot->p = start;
|
slot->p = start;
|
||||||
slot->memid = memid;
|
slot->memid = memid;
|
||||||
mi_atomic_store_relaxed(&slot->expire,0);
|
mi_atomic_store_relaxed(&slot->expire,(mi_msecs_t)0);
|
||||||
slot->is_committed = is_committed;
|
slot->is_committed = is_committed;
|
||||||
if (is_committed && !is_large) {
|
if (is_committed && !is_large) {
|
||||||
long delay = mi_option_get(mi_option_arena_reset_delay);
|
long delay = mi_option_get(mi_option_arena_reset_delay);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user