Format
#include <stdlib.h> void *_threadstore(void);
Language Level: Extension
_threadstore provides access to a private thread pointer that is
initialized to NULL. You can assign any thread-specific data
structure to this pointer.
You can only use _threadstore in multithread programs (compiled with the /Gm+ option).
Return Value
_threadstore returns the address of the pointer to the
defined thread storage space.
Example
This example uses _threadstore to point to storage that
is local to the thread. It prints the address pointed to by
_threadstore.
Note: You must compile this example with the multithread option (/Gm+).
#if (1 == __TOS_OS2__)
#define INCL_DOSPROCESS /* For OS/2 */
#include <os2.h>
#define SLEEP DosSleep(5000L)
#else
#include <windows.h> /* For Windows */
#define SLEEP Sleep(5000L)
#endif
#include <stdlib.h> #include <stdio.h>
#define privateStore (*_threadstore())
void thread(void *dummy)
{
privateStore = malloc(100);
printf("The starting address of the storaged space is %p\n", privateStore);
/* user must free storage before exiting thread */ free (privateStore); _endthread(); }
int main(void)
{
int i;
for (i = 0; i < 10; i++)
_beginthread(thread, NULL, (unsigned) 32096, NULL);
SLEEP;
return 0;
}
![]()
_beginthread -- Create New Thread
_endthread -- Terminate Current Thread
<stdlib.h>
/Gm compiler option