PreviousNext

rpc_ss_get_thread_handle(3rpc)

Gets a thread handle for the manager code before it spawns additional threads, or for the client code when it becomes a server

Used by server or possibly by client applications.

Synopsis

#include <dce/rpc.h>

rpc_ss_thread_handle_t rpc_ss_get_thread_handle(void);

Description
The rpc_ss_get_thread_handle( ) routine is used by a server manager thread when it spawns additional threads. To spawn additional threads that are able to perform memory management, the server manager code calls rpc_ss_get_thread_handle( ) and passes the thread handle to each spawned thread. Each spawned thread that uses rpc_ss_allocate( ) and rpc_ss_free( ) for memory management must first call rpc_ss_set_thread_handle( ), using the handle obtained by the original manager thread.

The rpc_ss_get_thread_handle( ) routine can also be used when a program changes from being a client to being a server. The program gets a handle on its environment as a client by calling rpc_ss_get_thread_handle( ). When the program reverts to being a client it re-establishes the client environment by calling rpc_ss_set_thread_handle( ), supplying the previously obtained handle as a parameter.

Return Values
A thread handle.

Examples
This function determines the thread handle, creates a thread, and passes the thread handle to the thread so it can share the memory management environment of the calling thread.

#include <pthread.h>
#include <idlbase.h>

pthread_t Launch_thread(

int (*routine_to_launch)(

pthread_addr_t th

)

)

{

rpc_ss_thread_handle_t th = rpc_ss_get_thread_handle( );

pthread_t t;

/*

* Create the thread and pass to it the thread handle

* so it can use rpc_ss_set_thread_handle.

*/

pthread_create (&t, pthread_attr_default,

(pthread_startroutine_t)routine_to_launch,

(pthread_addr_t)th);

return t;

}

Errors

A representative list of errors that might be returned is not shown here. Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages.

Related Information
Functions: rpc_ss_allocate(3rpc)

rpc_ss_free(3rpc)

rpc_ss_set_thread_handle(3rpc)