Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLSHOPT_LOCKFUNC(3)	   Library Functions Manual	 CURLSHOPT_LOCKFUNC(3)

NAME
       CURLSHOPT_LOCKFUNC - mutex lock callback

SYNOPSIS
       #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);

DESCRIPTION
       Set a mutex lock	callback for the share object, to allow	it to get used
       by  multiple  threads  concurrently.  There  is	a  corresponding CURL-
       SHOPT_UNLOCKFUNC(3) callback called when	the mutex is again released.

       The lockcb argument must	be a pointer to	a function matching the	proto-
       type shown above. The arguments to the callback are:

       handle is the currently active easy handle in use when the share	object
       is intended to get used.

       The data	argument tells what kind of data libcurl wants to  lock.  Make
       sure that the callback uses a different lock for	each kind of data.

       access defines what access type libcurl wants, shared or	single.

       clientp	is  the	 private  pointer  you set with	CURLSHOPT_USERDATA(3).
       This pointer is not used	by libcurl itself.

PROTOCOLS
       This functionality affects all supported	protocols

EXAMPLE
       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));
       }

AVAILABILITY
       Added in	curl 7.10.3

RETURN VALUE
       CURLSHE_OK (zero) means that the	 option	 was  set  properly,  non-zero
       means  an  error	occurred. See libcurl-errors(3)	for the	full list with
       descriptions.

SEE ALSO
       CURLSHOPT_UNLOCKFUNC(3),	  curl_share_cleanup(3),   curl_share_init(3),
       curl_share_setopt(3)

libcurl				  2025-06-03		 CURLSHOPT_LOCKFUNC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLSHOPT_LOCKFUNC&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help