/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 |