pub struct ThreadLocalRepo { /* private fields */ }
Expand description
An object providing a thread-local copy of a git2::Repository
for each thread.
Implementations§
Source§impl ThreadLocalRepo
impl ThreadLocalRepo
Sourcepub fn new(path: PathBuf) -> Self
pub fn new(path: PathBuf) -> Self
Create a ThreadLocalRepo
that opens the repository at the specified path on each thread.
Sourcepub fn get(&self) -> Result<&Repository, Error>
pub fn get(&self) -> Result<&Repository, Error>
Get the git2::Repository
for this thread. Returns an error if the open fails.
Note that the cache of thread-local objects never gets pruned. If you’re running on a
long-running thread or a thread pool, call this method. If you’re running on a short-lived
thread, call get_uncached
instead.
Sourcepub fn get_uncached(&self) -> Result<Repository, Error>
pub fn get_uncached(&self) -> Result<Repository, Error>
Get a new git2::Repository
, and don’t save it in the thread-local cache. Returns an error
if the open fails.
The cache of thread-local objects never gets pruned. If, over the lifetime of your process,
you run an unbounded number of threads that call get
and subsequently exit, the
thread-local cache will grow without bound. In such threads, use get_uncached
to open a
repository that won’t get cached.