From cde772c077a0ad2c1c776fa9e4f13efab0ea1b21 Mon Sep 17 00:00:00 2001 From: Mergul Date: Fri, 11 Oct 2019 19:05:41 +0200 Subject: [PATCH] -betterC works on linux with DMD --- source/ecs/std.d | 5 ++--- tests/tests.d | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/source/ecs/std.d b/source/ecs/std.d index 80fc895..e4dc5cd 100644 --- a/source/ecs/std.d +++ b/source/ecs/std.d @@ -131,9 +131,8 @@ static struct Mallocator static void* alignAlloc(size_t length, size_t alignment) nothrow @nogc { - void* ret; - version(Posix)ret = aligned_alloc(alignment, length); + version(Posix)posix_memalign(&ret, alignment, length);//ret = aligned_alloc(alignment, length); else version(Windows)ret = _aligned_malloc(length, alignment); else static assert(0, "Unimplemented platform!"); //posix_memalign(&ret, alignment, length); @@ -149,7 +148,7 @@ static struct Mallocator static void alignDispose(T)(T object) { static if(__traits(hasMember, T, "__dtor"))object.__dtor(); - version(Posix)aligned_free(cast(void*)object); + version(Posix)free(cast(void*)object); else version(Windows)_aligned_free(cast(void*)object); else static assert(0, "Unimplemented platform!"); diff --git a/tests/tests.d b/tests/tests.d index a41c7fd..6784ea9 100644 --- a/tests/tests.d +++ b/tests/tests.d @@ -27,6 +27,28 @@ version(Windows) } } } +else version(Posix) +{ + import core.sys.posix.time; + struct Time + { + static long getUSecTime() + { + time_t time; + timespec spec; + + clock_gettime(CLOCK_REALTIME, &spec); + + //time = spec.tv_sec; + return spec.tv_sec * 1000_000 + spec.tv_nsec / 1000;//time / 1000_000; + + /*LARGE_INTEGER time, freq; + QueryPerformanceFrequency(&freq); + QueryPerformanceCounter(&time); + return time.QuadPart / (freq.QuadPart / 1000_000);*/ + } + } +} struct TestEvent {