Coverage Report

Created: 2025-10-13 06:56

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libgit2/src/util/unix/pthread.h
Line
Count
Source
1
/*
2
 * Copyright (C) the libgit2 contributors. All rights reserved.
3
 *
4
 * This file is part of libgit2, distributed under the GNU GPL v2 with
5
 * a Linking Exception. For full terms see the included COPYING file.
6
 */
7
8
#ifndef INCLUDE_unix_pthread_h__
9
#define INCLUDE_unix_pthread_h__
10
11
typedef struct {
12
  pthread_t thread;
13
} git_thread;
14
15
2
GIT_INLINE(int) git_threads_global_init(void) { return 0; }
Unexecuted instantiation: packfile_fuzzer.c:git_threads_global_init
Unexecuted instantiation: fuzzer_utils.c:git_threads_global_init
Unexecuted instantiation: errors.c:git_threads_global_init
Unexecuted instantiation: runtime.c:git_threads_global_init
Unexecuted instantiation: str.c:git_threads_global_init
Unexecuted instantiation: thread.c:git_threads_global_init
Unexecuted instantiation: util.c:git_threads_global_init
Unexecuted instantiation: indexer.c:git_threads_global_init
libgit2.c:git_threads_global_init
Line
Count
Source
15
2
GIT_INLINE(int) git_threads_global_init(void) { return 0; }
Unexecuted instantiation: merge_driver.c:git_threads_global_init
Unexecuted instantiation: merge_file.c:git_threads_global_init
Unexecuted instantiation: mwindow.c:git_threads_global_init
Unexecuted instantiation: object.c:git_threads_global_init
Unexecuted instantiation: object_api.c:git_threads_global_init
Unexecuted instantiation: odb.c:git_threads_global_init
Unexecuted instantiation: odb_loose.c:git_threads_global_init
Unexecuted instantiation: odb_mempack.c:git_threads_global_init
Unexecuted instantiation: odb_pack.c:git_threads_global_init
Unexecuted instantiation: oid.c:git_threads_global_init
Unexecuted instantiation: pack-objects.c:git_threads_global_init
Unexecuted instantiation: pack.c:git_threads_global_init
Unexecuted instantiation: repository.c:git_threads_global_init
Unexecuted instantiation: revparse.c:git_threads_global_init
Unexecuted instantiation: revwalk.c:git_threads_global_init
Unexecuted instantiation: settings.c:git_threads_global_init
Unexecuted instantiation: strarray.c:git_threads_global_init
Unexecuted instantiation: mbedtls.c:git_threads_global_init
Unexecuted instantiation: openssl.c:git_threads_global_init
Unexecuted instantiation: registry.c:git_threads_global_init
Unexecuted instantiation: socket.c:git_threads_global_init
Unexecuted instantiation: submodule.c:git_threads_global_init
Unexecuted instantiation: sysdir.c:git_threads_global_init
Unexecuted instantiation: tag.c:git_threads_global_init
Unexecuted instantiation: http.c:git_threads_global_init
Unexecuted instantiation: httpclient.c:git_threads_global_init
Unexecuted instantiation: httpparser.c:git_threads_global_init
Unexecuted instantiation: smart_protocol.c:git_threads_global_init
Unexecuted instantiation: ssh_libssh2.c:git_threads_global_init
Unexecuted instantiation: tree.c:git_threads_global_init
Unexecuted instantiation: worktree.c:git_threads_global_init
Unexecuted instantiation: alloc.c:git_threads_global_init
Unexecuted instantiation: failalloc.c:git_threads_global_init
Unexecuted instantiation: stdalloc.c:git_threads_global_init
Unexecuted instantiation: date.c:git_threads_global_init
Unexecuted instantiation: filebuf.c:git_threads_global_init
Unexecuted instantiation: fs_path.c:git_threads_global_init
Unexecuted instantiation: futils.c:git_threads_global_init
Unexecuted instantiation: hash.c:git_threads_global_init
Unexecuted instantiation: net.c:git_threads_global_init
Unexecuted instantiation: pool.c:git_threads_global_init
Unexecuted instantiation: posix.c:git_threads_global_init
Unexecuted instantiation: pqueue.c:git_threads_global_init
Unexecuted instantiation: rand.c:git_threads_global_init
Unexecuted instantiation: regexp.c:git_threads_global_init
Unexecuted instantiation: tsort.c:git_threads_global_init
Unexecuted instantiation: vector.c:git_threads_global_init
Unexecuted instantiation: wildmatch.c:git_threads_global_init
Unexecuted instantiation: zstream.c:git_threads_global_init
Unexecuted instantiation: map.c:git_threads_global_init
Unexecuted instantiation: realpath.c:git_threads_global_init
Unexecuted instantiation: collisiondetect.c:git_threads_global_init
Unexecuted instantiation: sha1.c:git_threads_global_init
Unexecuted instantiation: ubc_check.c:git_threads_global_init
Unexecuted instantiation: builtin.c:git_threads_global_init
Unexecuted instantiation: annotated_commit.c:git_threads_global_init
Unexecuted instantiation: attr.c:git_threads_global_init
Unexecuted instantiation: attr_file.c:git_threads_global_init
Unexecuted instantiation: attrcache.c:git_threads_global_init
Unexecuted instantiation: blob.c:git_threads_global_init
Unexecuted instantiation: branch.c:git_threads_global_init
Unexecuted instantiation: buf.c:git_threads_global_init
Unexecuted instantiation: cache.c:git_threads_global_init
Unexecuted instantiation: checkout.c:git_threads_global_init
Unexecuted instantiation: clone.c:git_threads_global_init
Unexecuted instantiation: commit.c:git_threads_global_init
Unexecuted instantiation: commit_graph.c:git_threads_global_init
Unexecuted instantiation: commit_list.c:git_threads_global_init
Unexecuted instantiation: config.c:git_threads_global_init
Unexecuted instantiation: config_cache.c:git_threads_global_init
Unexecuted instantiation: config_file.c:git_threads_global_init
Unexecuted instantiation: config_list.c:git_threads_global_init
Unexecuted instantiation: config_parse.c:git_threads_global_init
Unexecuted instantiation: config_snapshot.c:git_threads_global_init
Unexecuted instantiation: delta.c:git_threads_global_init
Unexecuted instantiation: diff.c:git_threads_global_init
Unexecuted instantiation: diff_driver.c:git_threads_global_init
Unexecuted instantiation: diff_generate.c:git_threads_global_init
Unexecuted instantiation: diff_print.c:git_threads_global_init
Unexecuted instantiation: diff_tform.c:git_threads_global_init
Unexecuted instantiation: email.c:git_threads_global_init
Unexecuted instantiation: filter.c:git_threads_global_init
Unexecuted instantiation: grafts.c:git_threads_global_init
Unexecuted instantiation: hashsig.c:git_threads_global_init
Unexecuted instantiation: ident.c:git_threads_global_init
Unexecuted instantiation: index.c:git_threads_global_init
Unexecuted instantiation: index_map.c:git_threads_global_init
Unexecuted instantiation: iterator.c:git_threads_global_init
Unexecuted instantiation: mailmap.c:git_threads_global_init
Unexecuted instantiation: merge.c:git_threads_global_init
Unexecuted instantiation: midx.c:git_threads_global_init
Unexecuted instantiation: oidarray.c:git_threads_global_init
Unexecuted instantiation: parse.c:git_threads_global_init
Unexecuted instantiation: patch.c:git_threads_global_init
Unexecuted instantiation: patch_generate.c:git_threads_global_init
Unexecuted instantiation: path.c:git_threads_global_init
Unexecuted instantiation: pathspec.c:git_threads_global_init
Unexecuted instantiation: push.c:git_threads_global_init
Unexecuted instantiation: refdb.c:git_threads_global_init
Unexecuted instantiation: refdb_fs.c:git_threads_global_init
Unexecuted instantiation: reflog.c:git_threads_global_init
Unexecuted instantiation: refs.c:git_threads_global_init
Unexecuted instantiation: refspec.c:git_threads_global_init
Unexecuted instantiation: remote.c:git_threads_global_init
Unexecuted instantiation: signature.c:git_threads_global_init
Unexecuted instantiation: tls.c:git_threads_global_init
Unexecuted instantiation: trace.c:git_threads_global_init
Unexecuted instantiation: transaction.c:git_threads_global_init
Unexecuted instantiation: transport.c:git_threads_global_init
Unexecuted instantiation: auth.c:git_threads_global_init
Unexecuted instantiation: credential.c:git_threads_global_init
Unexecuted instantiation: git.c:git_threads_global_init
Unexecuted instantiation: local.c:git_threads_global_init
Unexecuted instantiation: smart.c:git_threads_global_init
Unexecuted instantiation: smart_pkt.c:git_threads_global_init
Unexecuted instantiation: tree-cache.c:git_threads_global_init
Unexecuted instantiation: sortedcache.c:git_threads_global_init
Unexecuted instantiation: utf8.c:git_threads_global_init
Unexecuted instantiation: varint.c:git_threads_global_init
Unexecuted instantiation: crlf.c:git_threads_global_init
Unexecuted instantiation: diff_file.c:git_threads_global_init
Unexecuted instantiation: diff_stats.c:git_threads_global_init
Unexecuted instantiation: diff_xdiff.c:git_threads_global_init
Unexecuted instantiation: fetch.c:git_threads_global_init
Unexecuted instantiation: fetchhead.c:git_threads_global_init
Unexecuted instantiation: graph.c:git_threads_global_init
Unexecuted instantiation: ignore.c:git_threads_global_init
Unexecuted instantiation: proxy.c:git_threads_global_init
16
17
#define git_thread_create(git_thread_ptr, start_routine, arg) \
18
0
  pthread_create(&(git_thread_ptr)->thread, NULL, start_routine, arg)
19
#define git_thread_join(git_thread_ptr, status) \
20
0
  pthread_join((git_thread_ptr)->thread, status)
21
#define git_thread_currentid() ((size_t)(pthread_self()))
22
#define git_thread_exit(retval) pthread_exit(retval)
23
24
/* Git Mutex */
25
#define git_mutex pthread_mutex_t
26
9.27k
#define git_mutex_init(a) pthread_mutex_init(a, NULL)
27
4.55M
#define git_mutex_lock(a) pthread_mutex_lock(a)
28
4.55M
#define git_mutex_unlock(a)     pthread_mutex_unlock(a)
29
9.27k
#define git_mutex_free(a) pthread_mutex_destroy(a)
30
31
/* Git condition vars */
32
#define git_cond pthread_cond_t
33
0
#define git_cond_init(c)  pthread_cond_init(c, NULL)
34
0
#define git_cond_free(c)  pthread_cond_destroy(c)
35
0
#define git_cond_wait(c, l) pthread_cond_wait(c, l)
36
0
#define git_cond_signal(c)  pthread_cond_signal(c)
37
#define git_cond_broadcast(c) pthread_cond_broadcast(c)
38
39
/* Pthread (-ish) rwlock
40
 *
41
 * This differs from normal pthreads rwlocks in two ways:
42
 * 1. Separate APIs for releasing read locks and write locks (as
43
 *    opposed to the pure POSIX API which only has one unlock fn)
44
 * 2. You should not use recursive read locks (i.e. grabbing a read
45
 *    lock in a thread that already holds a read lock) because the
46
 *    Windows implementation doesn't support it
47
 */
48
#define git_rwlock              pthread_rwlock_t
49
8
#define git_rwlock_init(a)  pthread_rwlock_init(a, NULL)
50
0
#define git_rwlock_rdlock(a)  pthread_rwlock_rdlock(a)
51
0
#define git_rwlock_rdunlock(a)  pthread_rwlock_unlock(a)
52
0
#define git_rwlock_wrlock(a)  pthread_rwlock_wrlock(a)
53
0
#define git_rwlock_wrunlock(a)  pthread_rwlock_unlock(a)
54
0
#define git_rwlock_free(a)  pthread_rwlock_destroy(a)
55
#define GIT_RWLOCK_STATIC_INIT  PTHREAD_RWLOCK_INITIALIZER
56
57
#endif