From 4815af2e3aed6ce7116c19f8f977accdc60d1710 Mon Sep 17 00:00:00 2001 From: Arne Claassen Date: Mon, 27 Jun 2011 00:51:00 -0700 Subject: [PATCH] - swapped in latest Rx (1.0,10605) - removed some overly spammydebug logging - exposed manual merge call on FirkinDictionary --- .../Firkin.Reactive.Test.csproj | 4 +-- .../TIObservableFirkinHash.cs | 1 + Firkin.Reactive/Firkin.Reactive.csproj | 4 +-- Firkin.Reactive/ObservableFirkinHash.cs | 27 ++++++------------- Firkin.Test.Perf/Firkin.Test.Perf.csproj | 4 +-- Firkin.Test.Perf/TAsync.cs | 1 + Firkin.Test.Perf/TStackoverflow.cs | 1 + Firkin/FirkinDictionary.cs | 4 +++ Firkin/FirkinHash.cs | 4 +-- 9 files changed, 20 insertions(+), 30 deletions(-) diff --git a/Firkin.Reactive.Test/Firkin.Reactive.Test.csproj b/Firkin.Reactive.Test/Firkin.Reactive.Test.csproj index 92530a8..9994ed2 100644 --- a/Firkin.Reactive.Test/Firkin.Reactive.Test.csproj +++ b/Firkin.Reactive.Test/Firkin.Reactive.Test.csproj @@ -43,9 +43,7 @@ 3.5 - - - + 3.5 diff --git a/Firkin.Reactive.Test/TIObservableFirkinHash.cs b/Firkin.Reactive.Test/TIObservableFirkinHash.cs index 744ce32..540238c 100644 --- a/Firkin.Reactive.Test/TIObservableFirkinHash.cs +++ b/Firkin.Reactive.Test/TIObservableFirkinHash.cs @@ -19,6 +19,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Reactive; using System.Threading; using Droog.Firkin; using Droog.Firkin.Test; diff --git a/Firkin.Reactive/Firkin.Reactive.csproj b/Firkin.Reactive/Firkin.Reactive.csproj index 97a431a..f6ea945 100644 --- a/Firkin.Reactive/Firkin.Reactive.csproj +++ b/Firkin.Reactive/Firkin.Reactive.csproj @@ -35,9 +35,7 @@ 3.5 - - - + 3.5 diff --git a/Firkin.Reactive/ObservableFirkinHash.cs b/Firkin.Reactive/ObservableFirkinHash.cs index cda59b4..e3d73d4 100644 --- a/Firkin.Reactive/ObservableFirkinHash.cs +++ b/Firkin.Reactive/ObservableFirkinHash.cs @@ -18,28 +18,15 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reactive.Subjects; using Droog.Firkin; using Droog.Firkin.Serialization; namespace Firkin.Reactive { public class ObservableFirkinHash : FirkinHash, IObservableFirkinHash { - //--- Types --- - private class DisposableClosure : IDisposable { - private readonly Action _dispose; - - public DisposableClosure(Action dispose) { - _dispose = dispose; - } - - public void Dispose() { - _dispose(); - } - } - - //--- Fields --- - private Subject> _observable = new Subject>(); + private readonly Subject> _observable = new Subject>(); //--- Constructors --- public ObservableFirkinHash(string storeDirectory) @@ -78,14 +65,16 @@ public ObservableFirkinHash(string storeDirectory, long maxFileSize, IByteArrayS private void OnNext(FirkinHashChange value) { CheckDisposed(); - _observable.OnNext(value); + lock(_observable) { + _observable.OnNext(value); + } } - - private void OnCompleted() { CheckDisposed(); - _observable.OnCompleted(); + lock(_observable) { + _observable.OnCompleted(); + } } } } diff --git a/Firkin.Test.Perf/Firkin.Test.Perf.csproj b/Firkin.Test.Perf/Firkin.Test.Perf.csproj index 148733f..6f36452 100644 --- a/Firkin.Test.Perf/Firkin.Test.Perf.csproj +++ b/Firkin.Test.Perf/Firkin.Test.Perf.csproj @@ -48,9 +48,7 @@ 3.5 - - - + 3.5 diff --git a/Firkin.Test.Perf/TAsync.cs b/Firkin.Test.Perf/TAsync.cs index ffc67d9..6dc17ad 100644 --- a/Firkin.Test.Perf/TAsync.cs +++ b/Firkin.Test.Perf/TAsync.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using System.Reactive.Linq; using System.Threading; using NUnit.Framework; diff --git a/Firkin.Test.Perf/TStackoverflow.cs b/Firkin.Test.Perf/TStackoverflow.cs index f1ac01a..e8f20d7 100644 --- a/Firkin.Test.Perf/TStackoverflow.cs +++ b/Firkin.Test.Perf/TStackoverflow.cs @@ -20,6 +20,7 @@ using System.Configuration; using System.IO; using System.Linq; +using System.Reactive; using System.Xml; using System.Xml.Serialization; using Droog.Firkin.Test.Perf.Stackoverflow; diff --git a/Firkin/FirkinDictionary.cs b/Firkin/FirkinDictionary.cs index 7a6d4d9..bb0e5de 100644 --- a/Firkin/FirkinDictionary.cs +++ b/Firkin/FirkinDictionary.cs @@ -133,6 +133,10 @@ public class FirkinDictionary : IDictionary, IDispos get { return this.Select(x => x.Value).ToList(); } } + public void Merge() { + _hash.Merge(); + } + private MemoryStream GetStream(TValue value) { var stream = new MemoryStream(); _valueSerializer.Serialize(stream, value); diff --git a/Firkin/FirkinHash.cs b/Firkin/FirkinHash.cs index 220229b..2d57399 100644 --- a/Firkin/FirkinHash.cs +++ b/Firkin/FirkinHash.cs @@ -42,7 +42,7 @@ private class MergePair { public IFirkinActiveFile Data; public IFirkinHintFile Hint; } - + //--- Class Fields --- protected static readonly ILog _log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); @@ -230,8 +230,8 @@ private class MergePair { } else { newIndex[key] = pair.Value; } - _log.DebugFormat("added entries from file {0}: {1}", file.FileId, newIndex.Count); } + _log.DebugFormat("added entries from file {0}: {1}", file.FileId, newIndex.Count); } // swap out index and file list