| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- .\" generated by cd2nroff 0.1 from CURLSHOPT_LOCKFUNC.md
- .TH CURLSHOPT_LOCKFUNC 3 "2025-01-17" libcurl
- .SH NAME
- CURLSHOPT_LOCKFUNC \- mutex lock callback
- .SH SYNOPSIS
- .nf
- #include <curl/curl.h>
- void lockcb(CURL *handle, curl_lock_data data, curl_lock_access access,
- void *clientp);
- CURLSHcode curl_share_setopt(CURLSH *share, CURLSHOPT_LOCKFUNC, lockcb);
- .fi
- .SH DESCRIPTION
- Set a mutex lock callback for the share object, to allow it to get used by
- multiple threads concurrently. There is a corresponding
- \fICURLSHOPT_UNLOCKFUNC(3)\fP callback called when the mutex is again released.
- The \fIlockcb\fP argument must be a pointer to a function matching the
- prototype shown above. The arguments to the callback are:
- \fIhandle\fP is the currently active easy handle in use when the share object
- is intended to get used.
- The \fIdata\fP argument tells what kind of data libcurl wants to lock. Make
- sure that the callback uses a different lock for each kind of data.
- \fIaccess\fP defines what access type libcurl wants, shared or single.
- \fIclientp\fP is the private pointer you set with \fICURLSHOPT_USERDATA(3)\fP.
- This pointer is not used by libcurl itself.
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- extern void mutex_lock(CURL *handle, curl_lock_data data,
- curl_lock_access access, void *clientp);
- int main(void)
- {
- CURLSHcode sh;
- CURLSH *share = curl_share_init();
- sh = curl_share_setopt(share, CURLSHOPT_LOCKFUNC, mutex_lock);
- if(sh)
- printf("Error: %s\\n", curl_share_strerror(sh));
- }
- .fi
- .SH AVAILABILITY
- Added in curl 7.10.3
- .SH RETURN VALUE
- CURLSHE_OK (zero) means that the option was set properly, non\-zero means an
- error occurred. See \fIlibcurl\-errors(3)\fP for the full list with
- descriptions.
- .SH SEE ALSO
- .BR CURLSHOPT_UNLOCKFUNC (3),
- .BR curl_share_cleanup (3),
- .BR curl_share_init (3),
- .BR curl_share_setopt (3)
|