{"id":50426575,"url":"https://github.com/m-fila/coopsync_tbb","last_synced_at":"2026-05-31T11:02:04.975Z","repository":{"id":342534918,"uuid":"1157454991","full_name":"m-fila/coopsync_tbb","owner":"m-fila","description":"Cooperative synchronization primitives for TBB resumable tasks","archived":false,"fork":false,"pushed_at":"2026-04-27T08:40:05.000Z","size":210,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-27T10:23:46.864Z","etag":null,"topics":["async","cpp","fibers","suspension","synchronization","tasks","tbb"],"latest_commit_sha":null,"homepage":"https://m-fila.github.io/coopsync_tbb/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-fila.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-13T20:53:39.000Z","updated_at":"2026-04-27T08:36:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/m-fila/coopsync_tbb","commit_stats":null,"previous_names":["m-fila/coopsync_tbb"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/m-fila/coopsync_tbb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fcoopsync_tbb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fcoopsync_tbb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fcoopsync_tbb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fcoopsync_tbb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-fila","download_url":"https://codeload.github.com/m-fila/coopsync_tbb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fcoopsync_tbb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33728391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["async","cpp","fibers","suspension","synchronization","tasks","tbb"],"created_at":"2026-05-31T11:02:04.321Z","updated_at":"2026-05-31T11:02:04.961Z","avatar_url":"https://github.com/m-fila.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2026 CERN\n\nSPDX-License-Identifier: Apache-2.0\n--\u003e\n\n# CoopSync for TBB\n\n[![documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://m-fila.github.io/coopsync_tbb/)\n[![tests](https://github.com/m-fila/coopsync_tbb/actions/workflows/tests.yml/badge.svg)](https://github.com/m-fila/coopsync_tbb/actions/workflows/tests.yml)\n[![sanitizers](https://github.com/m-fila/coopsync_tbb/actions/workflows/sanitizers.yml/badge.svg)](https://github.com/m-fila/coopsync_tbb/actions/workflows/sanitizers.yml)\n[![codecov](https://codecov.io/gh/m-fila/coopsync_tbb/graph/badge.svg?token=IKWQ0R4I2F)](https://codecov.io/gh/m-fila/coopsync_tbb)\n[![license](https://img.shields.io/github/license/m-fila/coopsync_tbb)](https://github.com/m-fila/coopsync_tbb/blob/main/LICENSE)\n\nCooperative synchronization primitives for TBB resumable tasks\n\n## Features\n\nThis library provides a set of cooperative synchronization primitives designed for use with oneTBB tasks. Unlike standard primitives that block the CPU, these primitives suspend the current task, allowing other tasks to execute while waiting.\n\nThe interfaces of the primitives are modelled after the C++ standard library wherever there is a direct correspondence.\n\n| Primitive            | Status |\n| -------------------- | ------ |\n| `atomic_condition`   | ✔️     |\n| `barrier`            | ✔️     |\n| `buffered_channel`   | ❌     |\n| `unbuffered_channel` | ❌     |\n| `condition_variable` | ✔️     |\n| `future`             | ✔️     |\n| `packaged_task`      | ✔️     |\n| `latch`              | ✔️     |\n| `mutex`              | ✔️     |\n| `recursive_mutex`    | ❌     |\n| `shared_mutex`       | ✔️     |\n| `semaphore`          | ✔️     |\n\n✔️: supported, ❌: not implemented\n\nThe project also provides optional integrations for GPU and other libraries. These integrations allow the current task to be suspended until the associated asynchronous operations complete.\n\n| Accelerators and libraries | Status |\n| -------------------------- | ------ |\n| CUDA                       | ✔️     |\n| HIP                        | ✔️     |\n| SYCL                       | ❌     |\n| ONNX                       | ❌     |\n| Triton                     | ❌     |\n\n✔️: supported, ❌: not implemented\n\n## Requirements\n\nBuild requirements:\n\n- C++17 or later compiler\n- oneTBB v2021.8 or later\n\nOptional dependencies (only required for integration headers):\n\n- CUDA v10 or later\n- HIP v5 or later\n\nThe optional dependencies are not needed to build the core library. They are only required if you include headers that provide given integration, such as `coopsync/cuda/wait_for.hpp` for CUDA or the corresponding HIP headers.\n\n## Building\n\nThis project uses CMake. To configure and build the library with default settings, run the following:\n\n```sh\ncmake --preset default\ncmake --build --preset default\n```\n\nBy default the project will fetch the dependencies. To find and use the system dependencies instead, set the CMake ` -DCOOPSYNC_TBB_USE_SYSTEM_LIBS=ON` flag during configuration.\n\n## Using in a CMake project\n\nThis project installs a CMake configuration and exports a CMake target, making it easy to use in other projects. The library can be located with `find_package` and linked to other targets:\n\n```cmake\nfind_package(CoopSync_TBB REQUIRED)\n\ntarget_link_libraries(your_target PUBLIC CoopSync_TBB::CoopSync_TBB)\n```\n\n## License\n\nThis project is licensed under [Apache License, Version 2.0](LICENSES/Apache-2.0.txt).\n\n## Disclaimer\n\nCoopSync for TBB is an independent extension library designed to work with oneTBB.\n\nThis project is not affiliated with, endorsed by, sponsored by, or otherwise associated with Intel Corporation, UXL Foundation or the oneTBB project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-fila%2Fcoopsync_tbb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-fila%2Fcoopsync_tbb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-fila%2Fcoopsync_tbb/lists"}