next up previous contents
Next: 2.14 fluke_thread_interrupt: interrupt another Up: 2 Thread Previous: 2.12 fluke_thread_get_server: retrieve the

2.13 fluke_thread_get_state: retrieve the current state of a thread

SYNOPSIS

void fluke_thread_get_state(fluke_thread_t *thread, fluke_thread_state *state, fluke_ref_t *task_ref, fluke_ref_t *scheduler_ref, fluke_ref_t *waiting_for_ref, fluke_ref_t *client_ref, fluke_ref_t *server_ref);

DESCRIPTION

This operation retrieves the application-visible state of a thread. The target thread will be stopped before its state is gathered and will remain stopped until fluke_thread_set_state is called with the FLUKE_THREAD_STOPPED bit cleared. There is no guarantee on how quickly a running target thread will be stopped, only that it will be stopped when this call completes.

PARAMETERS

thread
The thread whose state is to be retrieved.
state
If non-null, the structure to fill in with the simple (non-reference) thread state.
task_ref
If non-null, the address of a reference object to associate with the thread's task object.
scheduler_ref
If non-null, the address of a reference object to associate with the thread's scheduler port object.
waiting_for_ref
If non-null, the address of a reference object to associate with the object the thread is currently waiting for.
client_ref
If non-null, the address of a reference object to associate with the thread's client thread object.
server_ref
If non-null, the address of a reference object to associate with the thread's server thread object.

ERRORS

If any of the following errors is detected by the Fluke implementation, it causes the current thread to take a synchronous exception with one of the following codes. All of these have an implicit FLUKE_INSANITY_ prefix.
NO_OBJECT
thread does not point to an active object.
NOT_THREAD
The object pointed to by thread is not a thread object.
INVALID_OBJECT
The state of the thread object or one of the reference objects has become invalid.
NOT_REF
One or more of the reference object parameters was not a pointer to a reference object.
RACE_CONDITION
An illegal race condition with another thread was detected on one of the objects specified as parameters to this call.
CURRENT_THREAD
A thread attempted to get its own state.

RELATED INFORMATION

fluke_thread_set_state


next up previous contents
Next: 2.14 fluke_thread_interrupt: interrupt another Up: 2 Thread Previous: 2.12 fluke_thread_get_server: retrieve the

Utah Flux Research Group