netwib doc_html (version 5.39.0)

## main index

## section index

    /*-------------------------------------------------------------*/
    typedef struct netwib_thread_rwlock netwib_thread_rwlock;

    /*-------------------------------------------------------------*/
    /* Name : netwib_thread_rwlock_init
       Description :
         Initialize a rwlock.
       Input parameter(s) :
       Input/output parameter(s) :
         *pprwlock : netwib_thread_rwlock initialized
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_thread_rwlock_init(netwib_thread_rwlock **pprwlock);

    /*-------------------------------------------------------------*/
    /* Name : netwib_thread_rwlock_close
       Description :
         Close a rwlock.
       Input parameter(s) :
       Input/output parameter(s) :
         *pprwlock : netwib_thread_rwlock closed
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_thread_rwlock_close(netwib_thread_rwlock **pprwlock);

    /*-------------------------------------------------------------*/
    /* Name : netwib_thread_rwlock_rdlock
       Description :
         Wait for the rwlock.
         We lock for reading.
       Input parameter(s) :
         *prwlock : netwib_thread_rwlock
         *pabstime : end time. If *pabstime is reached, locking is
                     not done (*plocked set to NETWIB_FALSE).
       Input/output parameter(s) :
       Output parameter(s) :
         *plocked : the rwlock could be locked
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_thread_rwlock_rdlock(netwib_thread_rwlock *prwlock,
                                           netwib_consttime *pabstime,
                                           netwib_bool *plocked);

    /*-------------------------------------------------------------*/
    /* Name : netwib_thread_rwlock_rdunlock
       Description :
         Unlock reading of a rwlock.
       Input parameter(s) :
       Input/output parameter(s) :
         *prwlock : netwib_thread_rwlock to unlock
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_thread_rwlock_rdunlock(netwib_thread_rwlock *prwlock);

    /*-------------------------------------------------------------*/
    /* Name : netwib_thread_rwlock_wrlock
       Description :
         Wait for the rwlock.
         We lock for writing.
       Input parameter(s) :
         *prwlock : netwib_thread_rwlock
         *pabstime : end time. If *pabstime is reached, locking is
                     not done (*plocked set to NETWIB_FALSE).
       Input/output parameter(s) :
       Output parameter(s) :
         *plocked : the rwlock could be locked
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_thread_rwlock_wrlock(netwib_thread_rwlock *prwlock,
                                           netwib_consttime *pabstime,
                                           netwib_bool *plocked);

    /*-------------------------------------------------------------*/
    /* Name : netwib_thread_rwlock_wrunlock
       Description :
         Unlock writing of a rwlock.
       Input parameter(s) :
       Input/output parameter(s) :
         *prwlock : netwib_thread_rwlock to unlock
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_thread_rwlock_wrunlock(netwib_thread_rwlock *prwlock);

## main index

## section index