use regular lock instead of spinlock

pull/4146/head
Jan Tattermusch 10 years ago
parent 4bdd72befe
commit 1a8f547a0b
  1. 19
      src/csharp/Grpc.IntegrationTesting/Histogram.cs

@ -52,8 +52,7 @@ namespace Grpc.IntegrationTesting
/// </summary> /// </summary>
public class Histogram public class Histogram
{ {
readonly SpinLock spinlock = new SpinLock(); readonly object myLock = new object();
readonly double multiplier; readonly double multiplier;
readonly double oneOnLogMultiplier; readonly double oneOnLogMultiplier;
readonly double maxPossible; readonly double maxPossible;
@ -79,16 +78,10 @@ namespace Grpc.IntegrationTesting
public void AddObservation(double value) public void AddObservation(double value)
{ {
bool lockTaken = false; lock (myLock)
spinlock.Enter(ref lockTaken);
try
{ {
AddObservationUnsafe(value); AddObservationUnsafe(value);
} }
finally
{
if (lockTaken) spinlock.Exit();
}
} }
@ -97,16 +90,10 @@ namespace Grpc.IntegrationTesting
/// </summary> /// </summary>
public HistogramData GetSnapshot(bool reset = false) public HistogramData GetSnapshot(bool reset = false)
{ {
bool lockTaken = false; lock (myLock)
spinlock.Enter(ref lockTaken);
try
{ {
return GetSnapshotUnsafe(reset); return GetSnapshotUnsafe(reset);
} }
finally
{
if (lockTaken) spinlock.Exit();
}
} }
/// <summary> /// <summary>

Loading…
Cancel
Save