diff options
Diffstat (limited to 'test/test-atomic.lua')
-rw-r--r-- | test/test-atomic.lua | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/test-atomic.lua b/test/test-atomic.lua new file mode 100644 index 0000000..89c268c --- /dev/null +++ b/test/test-atomic.lua @@ -0,0 +1,30 @@ +local threads = require 'threads' +threads.Threads.serialization('threads.sharedserialize') + +local status, tds = pcall(require, 'tds') +tds = status and tds or nil +if not status then return end + +local atomic = tds.AtomicCounter() +local numOfThreads = 10 + +local pool = threads.Threads(numOfThreads) + +local steps = 100000 + +for t=1,numOfThreads do + pool:addjob(function() + for i=1,steps do + atomic:inc() + end + end) +end + +pool:synchronize() + +print(atomic) +assert(atomic:get() == numOfThreads * steps) + +pool:terminate() + +print('PASSED')
\ No newline at end of file |