Hostname: page-component-78c5997874-8bhkd Total loading time: 0 Render date: 2024-11-04T21:41:47.754Z Has data issue: false hasContentIssue false

Lock-free atom garbage collection for multithreaded Prolog - ERRATUM

Published online by Cambridge University Press:  09 June 2017

Rights & Permissions [Opens in a new window]

Extract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

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.

Type
Erratum
Copyright
Copyright © Cambridge University Press 2017 

References

Wielemaker, J. and Harris, K. 2016. Lock-free atom garbage collection for multithreaded prolog. TPLP 16, 5–6, 950965.Google Scholar