pthdb_pthread_hold, pthdb_pthread_holdstate or pthdb_pthread_unhold Subroutine

Purpose

Reports and changes the hold state of the specified pthread.

Library

pthread debug library (libpthdebug.a)

Syntax

#include <sys/pthdebug.h>

int pthdb_pthread_holdstate (pthdb_session_t    session,
                             pthdb_pthread_t    pthread,
                             pthdb_holdstate_t * holdstatep)
int pthdb_pthread_hold (pthdb_session_t  session,
                        pthdb_pthread_t  pthread)
int pthdb_pthread_unhold (pthdb_session_t  session,
                          pthdb_pthread_t  pthread)

Description

pthdb_pthread_holdstate reports if a pthread is held. The possible hold states are PHS_HELD, PHS_NOTHELD, or PHS_NOTSUP.

pthdb_pthread_hold prevents the specified pthread from running.

pthdb_pthread_unhold unholds the specified pthread. The pthread held earlier can be unheld by calling this function.

Note:
  1. You must always use the pthdb_pthread_hold and pthdb_pthread_unhold functions, regardless of whether or not a pthread has a kernel thread.
  2. These functions are only supposted when the PTHDB_FLAG_HOLD is set.

Parameters

Item Description
session Session handle.
pthread pthread handle. The specified pthread should have an attached kernel thread id.
holdstatep Pointer to the hold state

Return Values

If successful, pthdb_pthread_hold returns PTHDB_SUCCESS. Otherwise, it returns an error code.

Error Codes

Item Description
PTHDB_BAD_PTHREAD Invalid pthread handle.
PTHDB_BAD_SESSION Invalid session handle.
PTHDB_HELD pthread is held.
PTHDB_INTERNAL Error in library.