message: Make CFeeRate atomic
  minRelayTxFee is a dynamic value which has no lock associated with it
  so by making nSatoshiPerk (within CFeeRate) atomic we don't have
  to worry about locking minRelayTxFee in the many places it is used.
diff: #include "serialize.h"
  +#include <atomic>
  #include <stdlib.h>
  #include <string>
  @@ -42,15 +43,15 @@ inline bool MoneyRange(const CAmount &nValue) { return (nValue >= 0 && nValue <=
  class CFeeRate
  {
  private:
  - CAmount nSatoshisPerK; // unit is satoshis-per-1,000-bytes
  + std::atomic<int64_t> nSatoshisPerK; // unit is satoshis-per-1,000-bytes
  public:
  CFeeRate() : nSatoshisPerK(0) {}
  explicit CFeeRate(const CAmount _nSatoshisPerK) : nSatoshisPerK(_nSatoshisPerK) {}
  CFeeRate(const CAmount &nFeePaid, size_t nSize);
  - CFeeRate(const CFeeRate &other) { nSatoshisPerK = other.nSatoshisPerK; }
  + CFeeRate(const CFeeRate &other) { nSatoshisPerK = other.nSatoshisPerK.load(); }
  CFeeRate &operator=(const CFeeRate other)
  {
  - nSatoshisPerK = other.nSatoshisPerK;
  + nSatoshisPerK = other.nSatoshisPerK.load();
  return *this;
  }
  CAmount GetFee(size_t size) const; // unit returned is satoshis
  