Fixed race in trading perf test. Fixes #1383

This commit is contained in:
Patrik Nordwall 2011-11-28 14:43:46 +01:00
parent bff464479b
commit a229140fac
2 changed files with 7 additions and 10 deletions

View file

@ -51,11 +51,10 @@ object Orderbook {
val useDummyOrderbook = System.getProperty("benchmark.useDummyOrderbook", "false").toBoolean
def apply(symbol: String, standby: Boolean): Orderbook = standby match {
case false if !useDummyOrderbook new Orderbook(symbol) with SimpleTradeObserver
case true if !useDummyOrderbook new Orderbook(symbol) with StandbyTradeObserver
case false if useDummyOrderbook new DummyOrderbook(symbol) with SimpleTradeObserver
case true if useDummyOrderbook new DummyOrderbook(symbol) with StandbyTradeObserver
def apply(symbol: String, standby: Boolean): Orderbook = (useDummyOrderbook, standby) match {
case (false, false) new Orderbook(symbol) with NopTradeObserver
case (false, true) new Orderbook(symbol) with TotalTradeObserver
case (true, _) new DummyOrderbook(symbol) with NopTradeObserver
}
}

View file

@ -6,15 +6,13 @@ abstract trait TradeObserver {
def trade(bid: Bid, ask: Ask)
}
trait SimpleTradeObserver extends TradeObserver {
trait TotalTradeObserver extends TradeObserver {
override def trade(bid: Bid, ask: Ask) {
if (!Orderbook.useDummyOrderbook) {
TotalTradeCounter.counter.incrementAndGet
}
TotalTradeCounter.counter.incrementAndGet
}
}
trait StandbyTradeObserver extends TradeObserver {
trait NopTradeObserver extends TradeObserver {
override def trade(bid: Bid, ask: Ask) {
}
}