{"action":"created","issue":{"url":"https://api.github.com/repos/khizmax/libcds/issues/43","labels_url":"https://api.github.com/repos/khizmax/libcds/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/khizmax/libcds/issues/43/comments","events_url":"https://api.github.com/repos/khizmax/libcds/issues/43/events","html_url":"https://github.com/khizmax/libcds/issues/43","id":93442711,"number":43,"title":"SplitListMap iterator reliability or alternative","user":{"login":"ChicagoSchooler","id":8491760,"avatar_url":"https://avatars.githubusercontent.com/u/8491760?v=3","gravatar_id":"","url":"https://api.github.com/users/ChicagoSchooler","html_url":"https://github.com/ChicagoSchooler","followers_url":"https://api.github.com/users/ChicagoSchooler/followers","following_url":"https://api.github.com/users/ChicagoSchooler/following{/other_user}","gists_url":"https://api.github.com/users/ChicagoSchooler/gists{/gist_id}","starred_url":"https://api.github.com/users/ChicagoSchooler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChicagoSchooler/subscriptions","organizations_url":"https://api.github.com/users/ChicagoSchooler/orgs","repos_url":"https://api.github.com/users/ChicagoSchooler/repos","events_url":"https://api.github.com/users/ChicagoSchooler/events{/privacy}","received_events_url":"https://api.github.com/users/ChicagoSchooler/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-07T05:34:27Z","updated_at":"2015-07-08T10:05:21Z","closed_at":null,"body":"khizmax,\r\n\r\nThis is an incredible library!  Thank-you for your work!\r\n\r\nQuick question: are SplitListMap iterators guaranteed despite concurrent erasures?\r\n\r\nI've seen that warning in all other maps with iterators, so is this the only one with that capability, or was the warning simply omitted?\r\n\r\nIf SplitListMap iterators aren't guaranteed, is there an alternative lockfree map with guaranteed iterators?\r\n\r\nMost specifically, I'd like avoid early terminations.  Imperfect consistency across iteration is irrelevant to my implementation."},"comment":{"url":"https://api.github.com/repos/khizmax/libcds/issues/comments/119529792","html_url":"https://github.com/khizmax/libcds/issues/43#issuecomment-119529792","issue_url":"https://api.github.com/repos/khizmax/libcds/issues/43","id":119529792,"user":{"login":"khizmax","id":7014966,"avatar_url":"https://avatars.githubusercontent.com/u/7014966?v=3","gravatar_id":"","url":"https://api.github.com/users/khizmax","html_url":"https://github.com/khizmax","followers_url":"https://api.github.com/users/khizmax/followers","following_url":"https://api.github.com/users/khizmax/following{/other_user}","gists_url":"https://api.github.com/users/khizmax/gists{/gist_id}","starred_url":"https://api.github.com/users/khizmax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/khizmax/subscriptions","organizations_url":"https://api.github.com/users/khizmax/orgs","repos_url":"https://api.github.com/users/khizmax/repos","events_url":"https://api.github.com/users/khizmax/events{/privacy}","received_events_url":"https://api.github.com/users/khizmax/received_events","type":"User","site_admin":false},"created_at":"2015-07-08T10:05:21Z","updated_at":"2015-07-08T10:05:21Z","body":"Hi,\r\n*Quick question: are SplitListMap iterators guaranteed despite concurrent erasures?*\r\nIn general, no. It is safe if another thread erases a key which the iterator points to. However, in that case the iteration can lead to dangling pointer access if the next item is erased too.\r\n\r\n*If SplitListMap iterators aren't guaranteed, is there an alternative lockfree map with guaranteed iterators?*\r\nI don't known about that. In general, iterating is one of big problem in lock-free data structs. In libcds the iterators are debug-only feature."}}