Difference between revisions of "r7.1.1:Typedef libshared pal thread handle t"

From liblfds.org
Jump to navigation Jump to search
m (1 revision imported)
 
(No difference)

Latest revision as of 20:16, 17 February 2017

Source File

└───test_and_benchmark
    └───libshared
        └───inc
            └───libshared
                    libshared_porting_abstraction_layer_compiler.h

Typedef

typedef [type] test_pal_thread_handle_t;

Optionality

This typedef is mandatory.

Example

typedef HANDLE test_pal_thread_state_t;

Notes

Threads typically have associated with them both an ID and a handle.

This typedef is for the handle - i.e. the datum which the OS can wait on for thread termination.

If we look at the Windows CreateThread function;

HANDLE WINAPI CreateThread( _In_opt_  LPSECURITY_ATTRIBUTES  lpThreadAttributes,
                            _In_      SIZE_T                 dwStackSize,
                            _In_      LPTHREAD_START_ROUTINE lpStartAddress,
                            _In_opt_  LPVOID                 lpParameter,
                            _In_      DWORD                  dwCreationFlags,
                            _Out_opt_ LPDWORD                lpThreadId );

We see there is an argument, lpThreadId , which receives the thread ID, but that the function returns a HANDLE, which is the datum used by WaitForSingleObject to sleep until the thread has terminated.

See Also