From a595a7957c962a8f83258afcd50870ff55d463e1 Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 31 Jan 2015 13:40:12 +0000 Subject: [PATCH] .autotest: SpinLock git-svn-id: svn://ultimatepp.org/upp/trunk@8111 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- autotest/SpinLock/SpinLock.cpp | 26 ++++++++++++++++++++++++++ autotest/SpinLock/SpinLock.upp | 9 +++++++++ autotest/SpinLock/init | 4 ++++ 3 files changed, 39 insertions(+) create mode 100644 autotest/SpinLock/SpinLock.cpp create mode 100644 autotest/SpinLock/SpinLock.upp create mode 100644 autotest/SpinLock/init diff --git a/autotest/SpinLock/SpinLock.cpp b/autotest/SpinLock/SpinLock.cpp new file mode 100644 index 000000000..885fba690 --- /dev/null +++ b/autotest/SpinLock/SpinLock.cpp @@ -0,0 +1,26 @@ +#include + +using namespace Upp; + +SpinLock data_lock; +dword data; + +void AddData() +{ + data_lock.Enter(); + data = data + 1; + data_lock.Leave(); +} + +CONSOLE_APP_MAIN +{ + RTIMING("Test"); + { + CoWork co; + for(int i = 0; i < 10000000; i++) + co & callback(AddData); + } + RDUMP(data); + ASSERT(data == 10000000); + LOG("================ OK"); +} diff --git a/autotest/SpinLock/SpinLock.upp b/autotest/SpinLock/SpinLock.upp new file mode 100644 index 000000000..edcf19ab8 --- /dev/null +++ b/autotest/SpinLock/SpinLock.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + SpinLock.cpp; + +mainconfig + "" = "SSE2 MT"; + diff --git a/autotest/SpinLock/init b/autotest/SpinLock/init new file mode 100644 index 000000000..51c9bba20 --- /dev/null +++ b/autotest/SpinLock/init @@ -0,0 +1,4 @@ +#ifndef _SpinLock_icpp_init_stub +#define _SpinLock_icpp_init_stub +#include "Core/init" +#endif