On Friday, 31 January 2014 at 11:18:03 UTC, Andrej Mitrovic wrote:
On 1/31/14, Stanislav Blinov <[email protected]> wrote:
First, subsequent runs on my machine show interleaving results.
It also seems that either there *is* a race in there somewhere,
or maybe a bug?.. Some runs just flat freeze (even on small
thread counts) :\

Hmm.. Well I know we've had some issues with threads on FreeBSD. It's
hard to just guess what's wrong though. :)

I'm not comfortable with that atomicOp in the thread function.

I've reworked the unittest a little, to accomodate for multiple runs:

http://codepad.org/ghZdjvUE

And here are ldc's results (you may want to lower the thread count for dmd, I've killed program after the very first test took 27 second :o):

Test 0 time for SyncSingleton: 35.4775 msecs.
Test 0 time for AtomicSingleton: 58.5859 msecs.

Test 1 time for SyncSingleton: 64.9863 msecs.
Test 1 time for AtomicSingleton: 12.5479 msecs.

Test 2 time for SyncSingleton: 44.2617 msecs.
Test 2 time for AtomicSingleton: 26.2842 msecs.

Test 3 time for SyncSingleton: 24.8008 msecs.
Test 3 time for AtomicSingleton: 34.416 msecs.

Test 4 time for SyncSingleton: 5.63477 msecs.
Test 4 time for AtomicSingleton: 28.458 msecs.

Test 5 time for SyncSingleton: 18.1123 msecs.
Test 5 time for AtomicSingleton: 29.6738 msecs.

Test 6 time for SyncSingleton: 12.0234 msecs.
Test 6 time for AtomicSingleton: 53.2061 msecs.

Test 7 time for SyncSingleton: 70.6982 msecs.
Test 7 time for AtomicSingleton: 13.2285 msecs.

Test 8 time for SyncSingleton: 12.3447 msecs.
Test 8 time for AtomicSingleton: 8.06348 msecs.

Test 9 time for SyncSingleton: 20.3145 msecs.
Test 9 time for AtomicSingleton: 14.334 msecs.

Again, inconclusive :)

Reply via email to