标签: multithreading thread-safety libgit2
我正在尝试修改我们的代码库,该代码库似乎错误地使用了libgit2(至少TSAN对我们的使用方法感到疯狂)。
我了解大多数操作都是基于对象的(又称,存储库顶部的操作已本地化到该存储库),但是我不清楚何时涉及全局状态以及哪些操作需要在全局范围内进行同步。
是否存在需要全局同步的功能列表?
还涉及git_repository_open()时,是否需要确保一个路径仅由单个线程保留?即我需要防止多个线程访问同一存储库吗?
git_repository_open()