@@ -167,11 +167,9 @@ int CSporkManager::ProcessSporkMsg(CSporkMessage& spork)
167167 LogPrintf (" %s : got %s spork %d (%s) with value %d (signed at %d)\n " , __func__,
168168 strStatus, spork.nSporkID , sporkName, spork.nValue , spork.nTimeSigned );
169169
170- AddOrUpdateSporkMessage (spork);
170+ AddOrUpdateSporkMessage (spork, true );
171171 spork.Relay ();
172172
173- // PIVX: add to spork database.
174- pSporkDB->WriteSpork (spork.nSporkID , spork);
175173 // All good.
176174 return 0 ;
177175}
@@ -201,18 +199,24 @@ bool CSporkManager::UpdateSpork(SporkId nSporkID, int64_t nValue)
201199
202200 if (spork.Sign (strMasterPrivKey)) {
203201 spork.Relay ();
204- AddOrUpdateSporkMessage (spork);
202+ AddOrUpdateSporkMessage (spork, true );
205203 return true ;
206204 }
207205
208206 return false ;
209207}
210208
211- void CSporkManager::AddOrUpdateSporkMessage (const CSporkMessage& spork)
209+ void CSporkManager::AddOrUpdateSporkMessage (const CSporkMessage& spork, bool flush )
212210{
213- LOCK (cs);
214- mapSporks[spork.GetHash ()] = spork;
215- mapSporksActive[spork.nSporkID ] = spork;
211+ {
212+ LOCK (cs);
213+ mapSporks[spork.GetHash ()] = spork;
214+ mapSporksActive[spork.nSporkID ] = spork;
215+ }
216+ if (flush) {
217+ // add to spork database.
218+ pSporkDB->WriteSpork (spork.nSporkID , spork);
219+ }
216220}
217221
218222// grab the spork value, and see if it's off
0 commit comments