ACE_TSS_Keys(3)

ACE_TSS_Keys3

Collection of in-use flags for a thread's tss keys. for internal use only by ace_tss_cleanup; it is public because some compilers can't use nested classes for template instantiation parameters.

Usage

#include <ace/OS.h>
class ACE_TSS_Keys
{
  public:
    ACE_TSS_Keys (void);
    int test_and_set (const ACE_thread_key_t key);
    int test_and_clear (const ACE_thread_key_t key);
  private:
    static void find (const u_int key, u_int &word, u_int &bit);
    enum{ # if ACE_SIZEOF_LONG == 8 ACE_BITS_PER_WORD = 64, # elif ACE_SIZEOF_LONG == 4 ACE_BITS_PER_WORD = 32, # else # error ACE_TSS_Keys only supports 32 or 64 bit longs. # endif ACE_WORDS = (
        ACE_DEFAULT_THREAD_KEYS - 1) / ACE_BITS_PER_WORD + 1 };
        
    u_long key_bit_words_[ACE_WORDS];
};

Overview

Wrapper around array of whether each key is in use. A simple typedef doesn't work with Sun C++ 4.2.

Public members

ACE_TSS_Keys (void);

Default constructor, to initialize all bits to zero (unused).

int test_and_set (const ACE_thread_key_t key);

Mark the specified key as being in use, if it was not already so marked. Returns 1 if the had already been marked, 0 if not.

int test_and_clear (const ACE_thread_key_t key);

Mark the specified key as not being in use, if it was not already so cleared. Returns 1 if the had already been cleared, 0 if not.

Private members

static void find (const u_int key, u_int &word, u_int &bit);

For a given key, find the word and bit number that represent it.

u_long key_bit_words_[ACE_WORDS];

Bit flag collection. A bit value of 1 indicates that the key is in use by this thread.

The ACE_Sched_Priority type should be used for platform-

independent thread and process priorities, by convention. int should be used for OS-specific priorities.

typedef for the _stat data structure

Giving unique ACE scoped names for some important

RTSignal-Related constants. Becuase sometimes, different platforms use different names for these constants.

Library

ace

Author

Doug Schmidt [email protected], Jesper S. M|ller [email protected], and a cast of thousands...

From libace-doc 5.0.7-4 in Debian 2.2 (Potato). Parsed by carta from the page's man source.