{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,3,30]],"date-time":"2022-03-30T01:18:59Z","timestamp":1648603139544},"reference-count":1,"publisher":"Cambridge University Press (CUP)","issue":"1","license":[{"start":{"date-parts":[[2017,6,9]],"date-time":"2017-06-09T00:00:00Z","timestamp":1496966400000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2018,1]]},"abstract":"<jats:p>Algorithm 4 on page 960 of the above named article (Wielemaker and Harris 2016) is flawed. The issue is illustrated by algorithm 1 (supplementary figure 1). If a thread A detects the condition table too full is false it proceeds adding its atom to the table. If thread B detects the table is (now) too full it starts a resize. The resize allocates a new table and copies the atoms from the old to the new table. If thread A adds the new atom after the copy loop passes its location and before thread B activates the new table the insertion is considered successful, but the new atom is only in the deactivated old table.<\/jats:p>","DOI":"10.1017\/s1471068417000059","type":"journal-article","created":{"date-parts":[[2017,6,9]],"date-time":"2017-06-09T14:13:53Z","timestamp":1497017633000},"page":"120-120","source":"Crossref","is-referenced-by-count":0,"title":["Lock-free atom garbage collection for multithreaded Prolog - ERRATUM"],"prefix":"10.1017","volume":"18","author":[{"given":"JAN","family":"WIELEMAKER","sequence":"first","affiliation":[]},{"given":"KERI","family":"HARRIS","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2017,6,9]]},"reference":[{"key":"S1471068417000059_ref1","first-page":"950","article-title":"Lock-free atom garbage collection for multithreaded prolog","volume":"16","author":"Wielemaker","year":"2016","journal-title":"TPLP"}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068417000059","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,15]],"date-time":"2019-04-15T20:52:11Z","timestamp":1555361531000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068417000059\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,6,9]]},"references-count":1,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2018,1]]}},"alternative-id":["S1471068417000059"],"URL":"https:\/\/doi.org\/10.1017\/s1471068417000059","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,6,9]]}}}