diff options
author | uphantom <[email protected]> | 2015-08-28 17:41:14 +0800 |
---|---|---|
committer | uphantom <[email protected]> | 2015-08-28 17:41:14 +0800 |
commit | a68d3c982ed0dd4ef5bbc9e0c22b9ecf9565b924 (patch) | |
tree | bc59ef1a69b32276cc97454fbc3c881fc8c518cc /fastnn/threads/test/test-low-level.lua | |
parent | 1a9f63e351582f54fec7817927168cb1dbb0c1d6 (diff) |
fastnn version 1.0
Diffstat (limited to 'fastnn/threads/test/test-low-level.lua')
-rw-r--r-- | fastnn/threads/test/test-low-level.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/fastnn/threads/test/test-low-level.lua b/fastnn/threads/test/test-low-level.lua new file mode 100644 index 0000000..aea31db --- /dev/null +++ b/fastnn/threads/test/test-low-level.lua @@ -0,0 +1,39 @@ +local t = require 'libthreads' + +local m = t.Mutex() +local c = t.Condition() +print(string.format('| main thread mutex: 0x%x', m:id())) +print(string.format('| main thread condition: 0x%x', c:id())) + +local code = string.format([[ + local t = require 'libthreads' + local c = t.Condition(%d) + print('|| hello from thread') + print(string.format('|| thread condition: 0x%%x', c:id())) + print('|| doing some stuff in thread...') + local x = 0 + for i=1,10000 do + for i=1,10000 do + x = x + math.sin(i) + end + x = x / 10000 + end + print(string.format('|| ...ok (x=%%f)', x)) + c:signal() +]], c:id()) + +print(code) + +local thread = t.Thread(code) + + +print('| waiting for thread...') +m:lock() +c:wait(m) +print('| thread finished!') + +thread:free() +m:free() +c:free() + +print('| done') |