HyThread_public Struct Reference

#include <hythread.h>

List of all members.


Detailed Description

Native thread control structure's public fields.


Public Attributes

void * reserved
int32 request
 Number of requests made for this thread, it includes both suspend requests and safe point callback requests.
int16 disable_count
 Field indicating that thread can safely be suspended.
hythread_group_t group
 Group for this thread.
void * thread_local_storage [10]
 Array representing thread local storage.


Member Data Documentation

void* HyThread_public.reserved

int32 HyThread_public.request

Number of requests made for this thread, it includes both suspend requests and safe point callback requests.

The field is modified by atomic operations.

Increment in functions: 1. send_suspend_request()

Decrement in functions: 1. hythread_resume()

int16 HyThread_public.disable_count

Field indicating that thread can safely be suspended.

Safe suspension is enabled on value 0.

The disable_count is increased/decreaded in hythread_suspend_disable()/hythread_suspend_enable() function for current thread only.

Also disable_count could be reset to value 0 and restored in hythread_reset_suspend_disable()/hythread_set_suspend_disable() function for current thread only.

Function hythread_exception_safe_point() sets disable_count to value 1 before safe point callback function calling and restores it after the call.

Function thread_safe_point_impl() sets disable_count to value 0 before entering to the safe point and restores it after exitting.

hythread_group_t HyThread_public.group

Group for this thread.

Different groups are needed in order to be able to quickly iterate over the specific group. Examples are: Java threads, GC private threads. Equal to the address of the head of the list of threads for this group.

void* HyThread_public.thread_local_storage[10]

Array representing thread local storage.


The documentation for this struct was generated from the following file:

Genereated on Tue Mar 11 19:25:45 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.