{"id":19020706,"url":"https://github.com/bhhbazinga/lockfreelinkedlist","last_synced_at":"2025-04-23T07:01:23.176Z","repository":{"id":158612886,"uuid":"238148902","full_name":"bhhbazinga/LockFreeLinkedList","owner":"bhhbazinga","description":"Lock Free Linked List Based On Harris'OrderedListBasedSet And Michael's Hazard Pointer.","archived":false,"fork":false,"pushed_at":"2020-02-27T03:12:49.000Z","size":49,"stargazers_count":34,"open_issues_count":3,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-17T22:09:00.391Z","etag":null,"topics":["cpp","linked-list","lock-free","thread"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bhhbazinga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-04T07:34:28.000Z","updated_at":"2025-02-04T08:19:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"337e103e-c748-41f8-abdb-35aaf035d958","html_url":"https://github.com/bhhbazinga/LockFreeLinkedList","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhhbazinga%2FLockFreeLinkedList","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhhbazinga%2FLockFreeLinkedList/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhhbazinga%2FLockFreeLinkedList/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhhbazinga%2FLockFreeLinkedList/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bhhbazinga","download_url":"https://codeload.github.com/bhhbazinga/LockFreeLinkedList/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250386746,"owners_count":21422026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","linked-list","lock-free","thread"],"created_at":"2024-11-08T20:18:18.099Z","updated_at":"2025-04-23T07:01:23.050Z","avatar_url":"https://github.com/bhhbazinga.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LockFreeLinkedList\nLock Free Linked List Based On Harris'OrderedListBasedSet And Michael's Hazard Pointer.\n## Feature\n  * Thread-safe and Lock-free.\n  * ABA safe.\n  * Set implemented through singly ordered linked list[1].\n  * Use Hazard pointer to manage memory[2].\n  * Support Multi-producer \u0026 Multi-consumer.\n## Benchmark\n\n  Magnitude     | Insert      | Delete      | Insert \u0026 Delete|\n  :-----------  | :-----------| :-----------| :-----------------\n  1K            | 1.2ms       | 0ms         | 3.6ms\n  10K           | 147.1ms     | 18.9ms      | 293.5ms\n  100K          | 15064.4ms   | 1647ms      | 27176ms\n  \nThe above data was tested on my 2013 macbook-pro with Intel Core i7 4 cores 2.3 GHz.\n\nThe data of first and second column was obtained by starting 8 threads to insert concurrently and delete concurrently, the data of third column was obtained by starting 4 threads to insert and 4 threads to delete concurrently, each looped 10 times to calculate the average time consumption.\nSee also [test](test.cc).\n## Build\n```\nmake \u0026\u0026 ./test\n```\n## API\n```C++\nbool Insert(const T\u0026 data);\nbool Insert(T\u0026\u0026 data);\nbool Emplace(Args\u0026\u0026... args);\nbool Delete(const T\u0026 data);\nbool Find(const T\u0026 data);\nsize_t size() const;\n```\n## Reference\n[1]A Pragmatic Implementation of Non-BlockingLinked-Lists. Timothy L.Harris\\\n[2]Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects. Maged M. Michael\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhhbazinga%2Flockfreelinkedlist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhhbazinga%2Flockfreelinkedlist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhhbazinga%2Flockfreelinkedlist/lists"}