cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
curl_global.c
Go to the documentation of this file.
1
#define _POSIX_C_SOURCE 200809L
2
3
#include "
curl_global.h
"
4
5
#include <curl/curl.h>
6
#include <pthread.h>
7
8
static
pthread_mutex_t
g_curl_global_mtx =
PTHREAD_MUTEX_INITIALIZER
;
9
static
int
g_curl_global_ref = 0;
10
19
void
cwist_curl_global_acquire
(
void
) {
20
pthread_mutex_lock
(&g_curl_global_mtx);
21
if
(g_curl_global_ref == 0) {
22
curl_global_init
(
CURL_GLOBAL_DEFAULT
);
23
}
24
g_curl_global_ref++;
25
pthread_mutex_unlock
(&g_curl_global_mtx);
26
}
27
36
void
cwist_curl_global_release
(
void
) {
37
pthread_mutex_lock
(&g_curl_global_mtx);
38
if
(g_curl_global_ref > 0) {
39
g_curl_global_ref--;
40
if
(g_curl_global_ref == 0) {
41
curl_global_cleanup
();
42
}
43
}
44
pthread_mutex_unlock
(&g_curl_global_mtx);
45
}
cwist_curl_global_acquire
void cwist_curl_global_acquire(void)
Acquire a reference on the global libcurl instance.
Definition
curl_global.c:19
cwist_curl_global_release
void cwist_curl_global_release(void)
Release a reference on the global libcurl instance.
Definition
curl_global.c:36
curl_global.h
cap
size_t cap
Definition
otel.c:56
src
net
http
curl_global.c
Generated by
1.9.8