pthread_jail.h File Reference

pthread_jail_t provides a multiple thread update to a dynamic array More...

#include <pthread.h>
#include <unistd.h>

Go to the source code of this file.

Data Structures

struct  pthread_jailattr_t
 pthread_jail_t attribute structure More...
struct  pthread_jail_t
 pthread_jail_t structure More...

Defines

#define PTHREAD_JAIL_INITIALIZER
 static initializer for pthread_jail_t

Functions

int pthread_jail_init (pthread_jail_t *jail, const pthread_jailattr_t *attr)
 initialize pthread_jail_t structure
int pthread_jail_destroy (pthread_jail_t *jail)
 destroy pthread_jail_t structure
int pthread_jail_search (pthread_jail_t *jail)
 only one can be searched at a time
int pthread_jail_visit (pthread_jail_t *jail)
 multiple visitors at a time
int pthread_jail_leave (pthread_jail_t *jail)
 leaving jail
int pthread_jail_lockdown (pthread_jail_t *jail)
 no new visitors, wait until current visitors leave
int pthread_jail_release (pthread_jail_t *jail)
 new visitors allowed
int pthread_jailattr_init (pthread_jailattr_t *attr)
 initialize pthread_jail_t attribute structure
int pthread_jailattr_destroy (pthread_jailattr_t *attr)
 destroy pthread_jail_t attribute structure


Detailed Description

pthread_jail_t provides a multiple thread update to a dynamic array

to enter the jail:

  1. must get searched (only one at a time)
  2. if case (test array length)
    1. enter lock-down (no one else can be in jail)
    2. update (maximum array length)
    3. release from lock-down
  3. update (current array length)
  4. become visitor (update array)
  5. leave jail

Warning:


Define Documentation

#define PTHREAD_JAIL_INITIALIZER

Value:

{ PTHREAD_MUTEX_INITIALIZER, \
        PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, \
        0, 0, 0, 0, 0 }
static initializer for pthread_jail_t


Function Documentation

int pthread_jail_destroy ( pthread_jail_t jail  ) 

destroy pthread_jail_t structure

Parameters:
jail pointer to pthread_jail_t structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jail_init ( pthread_jail_t jail,
const pthread_jailattr_t attr 
)

initialize pthread_jail_t structure

Parameters:
jail pointer to pthread_jail_t structure
attr pointer to pthread_jail_t attribute structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jail_leave ( pthread_jail_t jail  ) 

leaving jail

Parameters:
jail pointer to pthread_jail_t structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jail_lockdown ( pthread_jail_t jail  ) 

no new visitors, wait until current visitors leave

Parameters:
jail pointer to pthread_jail_t structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jail_release ( pthread_jail_t jail  ) 

new visitors allowed

Parameters:
jail pointer to pthread_jail_t structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jail_search ( pthread_jail_t jail  ) 

only one can be searched at a time

Parameters:
jail pointer to pthread_jail_t structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jail_visit ( pthread_jail_t jail  ) 

multiple visitors at a time

Parameters:
jail pointer to pthread_jail_t structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jailattr_destroy ( pthread_jailattr_t attr  ) 

destroy pthread_jail_t attribute structure

Parameters:
attr pointer to pthread_jail_t attribute structure
Returns:
0 is returned on success
non-zero error code is returned on failure

int pthread_jailattr_init ( pthread_jailattr_t attr  ) 

initialize pthread_jail_t attribute structure

Parameters:
attr pointer to pthread_jail_t attribute structure
Returns:
0 is returned on success
non-zero error code is returned on failure


Generated on Tue Apr 24 20:01:36 2007 for libctf by  doxygen 1.5.1