@@ -205,25 +205,28 @@ code CLASS::push_spenders(tx_links& out, const point& point,
205205 auto it = store_.point .it (table::point::compose (point));
206206 if (!it)
207207 {
208- const auto key1 = it.key ();
209- const auto link1 = it.self ();
210- const auto get1 = it.get ();
211- it.reset ();
212-
213- if (key1 != table::point::compose (point))
214- return error::integrity12;
215- if (!link1.is_terminal ())
216- return error::integrity13;
217- if (is_null (get1))
218- return error::integrity14;
219-
220- table::point::record get{};
221- if (!store_.point .get (self, get))
222- return error::integrity15;
223- if (get.hash != point.hash ())
224- return error::integrity16;
225- if (get.index != point.index ())
226- return error::integrity17;
208+ // This verified that there was a race condition in the intial hashmap
209+ // memory fence implementation, manifesting above as not found, where
210+ // immediately after (below) the same object was found. Now fixed.
211+ // //const auto key1 = it.key();
212+ // //const auto link1 = it.self();
213+ // //const auto get1 = it.get();
214+ // //it.reset();
215+ // //
216+ // //if (key1 != table::point::compose(point))
217+ // // return error::integrity12;
218+ // //if (!link1.is_terminal())
219+ // // return error::integrity13;
220+ // //if (is_null(get1))
221+ // // return error::integrity14;
222+ // //
223+ // //table::point::record get{};
224+ // //if (!store_.point.get(self, get))
225+ // // return error::integrity15;
226+ // //if (get.hash != point.hash())
227+ // // return error::integrity16;
228+ // //if (get.index != point.index())
229+ // // return error::integrity17;
227230
228231 return error::integrity4;
229232 }
0 commit comments