summaryrefslogtreecommitdiff
path: root/Rx/v2/test/operators
diff options
context:
space:
mode:
authorKirk Shoop <kirk.shoop@microsoft.com>2014-06-07 23:35:45 -0700
committerKirk Shoop <kirk.shoop@microsoft.com>2014-06-07 23:51:20 -0700
commit13c4044274c875a251d86a691e14ef52e648a694 (patch)
tree3b6c2e736a93e4eabe118e5b2c138012956efa3a /Rx/v2/test/operators
parent051c265bd754739d4ddfff4573ffa466e9422fde (diff)
downloadRxCpp-13c4044274c875a251d86a691e14ef52e648a694.tar.gz
perf improvements
Diffstat (limited to 'Rx/v2/test/operators')
-rw-r--r--Rx/v2/test/operators/concat.cpp4
-rw-r--r--Rx/v2/test/operators/concat_map.cpp4
-rw-r--r--Rx/v2/test/operators/flat_map.cpp4
-rw-r--r--Rx/v2/test/operators/merge.cpp9
4 files changed, 11 insertions, 10 deletions
diff --git a/Rx/v2/test/operators/concat.cpp b/Rx/v2/test/operators/concat.cpp
index ddd6145..864166c 100644
--- a/Rx/v2/test/operators/concat.cpp
+++ b/Rx/v2/test/operators/concat.cpp
@@ -29,7 +29,7 @@ SCENARIO("synchronize concat ranges", "[hide][range][synchronize][concat][perf]"
//auto sc = rxsc::make_new_thread();
auto so = rxsub::synchronize_observable(sc);
- int c = 0;
+ std::atomic<int> c(0);
int n = 1;
auto sectionCount = onnextcalls / 3;
auto start = clock::now();
@@ -46,7 +46,7 @@ SCENARIO("synchronize concat ranges", "[hide][range][synchronize][concat][perf]"
wake.notify_one();});
std::unique_lock<std::mutex> guard(lock);
- wake.wait(guard);
+ wake.wait(guard, [&](){return c == onnextcalls;});
auto finish = clock::now();
auto msElapsed = duration_cast<milliseconds>(finish.time_since_epoch()) -
diff --git a/Rx/v2/test/operators/concat_map.cpp b/Rx/v2/test/operators/concat_map.cpp
index 322d92d..058a645 100644
--- a/Rx/v2/test/operators/concat_map.cpp
+++ b/Rx/v2/test/operators/concat_map.cpp
@@ -73,7 +73,7 @@ SCENARIO("synchronize concat_map pythagorian ranges", "[hide][range][concat_map]
auto so = rxsub::synchronize_observable(sc);
int c = 0;
- int ct = 0;
+ std::atomic<int> ct(0);
int n = 1;
auto start = clock::now();
auto triples =
@@ -109,7 +109,7 @@ SCENARIO("synchronize concat_map pythagorian ranges", "[hide][range][concat_map]
wake.notify_one();});
std::unique_lock<std::mutex> guard(lock);
- wake.wait(guard);
+ wake.wait(guard, [&](){return ct == tripletCount;});
auto finish = clock::now();
auto msElapsed = duration_cast<milliseconds>(finish.time_since_epoch()) -
diff --git a/Rx/v2/test/operators/flat_map.cpp b/Rx/v2/test/operators/flat_map.cpp
index 7b63664..cb9b2a0 100644
--- a/Rx/v2/test/operators/flat_map.cpp
+++ b/Rx/v2/test/operators/flat_map.cpp
@@ -110,7 +110,7 @@ SCENARIO("synchronize flat_map pythagorian ranges", "[hide][range][flat_map][syn
auto so = rxsub::synchronize_observable(sc);
int c = 0;
- int ct = 0;
+ std::atomic<int> ct(0);
int n = 1;
auto start = clock::now();
auto triples =
@@ -146,7 +146,7 @@ SCENARIO("synchronize flat_map pythagorian ranges", "[hide][range][flat_map][syn
wake.notify_one();});
std::unique_lock<std::mutex> guard(lock);
- wake.wait(guard);
+ wake.wait(guard, [&](){return ct == tripletCount;});
auto finish = clock::now();
auto msElapsed = duration_cast<milliseconds>(finish.time_since_epoch()) -
diff --git a/Rx/v2/test/operators/merge.cpp b/Rx/v2/test/operators/merge.cpp
index 77f2033..931d26f 100644
--- a/Rx/v2/test/operators/merge.cpp
+++ b/Rx/v2/test/operators/merge.cpp
@@ -29,24 +29,25 @@ SCENARIO("synchronize merge ranges", "[hide][range][synchronize][merge][perf]"){
//auto sc = rxsc::make_new_thread();
auto so = rxsub::synchronize_observable(sc);
- int c = 0;
+ std::atomic<int> c(0);
int n = 1;
auto sectionCount = onnextcalls / 3;
auto start = clock::now();
rxs::range(0, sectionCount - 1, 1, sc)
.merge(
so,
- rxs::range(sectionCount, sectionCount * 2 - 1, 1, sc),
+ rxs::range(sectionCount, (sectionCount * 2) - 1, 1, sc),
rxs::range(sectionCount * 2, onnextcalls - 1, 1, sc))
.subscribe(
[&c](int x){
++c;},
[](std::exception_ptr){abort();},
[&](){
- wake.notify_one();});
+ wake.notify_one();
+ });
std::unique_lock<std::mutex> guard(lock);
- wake.wait(guard);
+ wake.wait(guard, [&](){return c == onnextcalls;});
auto finish = clock::now();
auto msElapsed = duration_cast<milliseconds>(finish.time_since_epoch()) -