Provided by: libcurl4-doc_7.85.0-1_all bug

NAME

       CURLSHOPT_LOCKFUNC - mutex lock callback

SYNOPSIS

       #include <curl/curl.h>

       void lockcb(CURL *handle, curl_lock_data data, curl_lock_access access,
                   void *userptr);

       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's a corresponding CURLSHOPT_UNLOCKFUNC(3) callback called when
       the mutex is again released.

       The  lockcb  argument  must be a pointer to a function matching the prototype 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.

       userptr is the private pointer you set with CURLSHOPT_USERDATA.  This pointer is not  used
       by libcurl itself.

PROTOCOLS

       All

EXAMPLE

         CURLSHcode sh;
         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 7.10

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_setopt(3), curl_share_cleanup(3), curl_share_init(3)