DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(libtool14.info.gz) Thread Safety in libltdl

Info Catalog (libtool14.info.gz) Modules for libltdl (libtool14.info.gz) Using libltdl (libtool14.info.gz) User defined module data
 
 10.3 Using libtldl in a multi threaded environment
 ==================================================
 
 Using the `lt_dlmutex_register()' function, and by providing some
 appropriate callback function definitions, libltdl can be used in a
 multi-threaded environment.
 
  -- Type: void lt_dlmutex_lock (void)
      This is the type of a function pointer holding the address of a
      function which will be called at the start of parts of the libltdl
      implementation code which require a mutex lock.
 
      Because libltdl is inherantly recursive, it is important that the
      locking mechanism employed by these callback functions are
      reentrant, or else strange problems will occur.
 
  -- Type: void lt_dlmutex_unlock (void)
      The type of a matching unlock function.
 
  -- Type: void lt_dlmutex_seterror (const char *ERROR);
      Many of the functions in the libltdl API have a special return
      value to indicate to the client that an error has occured.
      Normally (in single threaded applications) a string describing
      that error can be retrieved from internal storage with
      `lt_dlerror()'.
 
      A function of this type must be registered with the library in
      order for it to work in a multi-threaded context.  The function
      should store any error message passed in thread local storage.
 
  -- Type: const char * lt_dlmutex_geterror (void)
      The type of a matching callback function to retrieve the last
      stored error message from thread local storage.
 
      When regeistered correctly this function will be used by
      `lt_dlerror())' from all threads to retrieve error messages for the
      client.
 
  -- Function: int lt_dlmutex_register (lt_dlmutex_lock *LOCK,
           lt_dlmutex_unlock *UNLOCK, lt_dlmutex_set_error *SETERROR,
           lt_dlmutex_geterror *GETERROR)
      Use this function to register one of each of function ttypes
      described above in preparation for multi-threaded use of libltdl.
      All arguments must be valid non-`NULL' function addresses, or else
      all `NULL' to return to single threaded operation.
 
Info Catalog (libtool14.info.gz) Modules for libltdl (libtool14.info.gz) Using libltdl (libtool14.info.gz) User defined module data
automatically generated byinfo2html