47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #pragma once
 | ||
|  | 
 | ||
|  | #include <kinc/global.h>
 | ||
|  | 
 | ||
|  | #include <kinc/backend/threadlocal.h>
 | ||
|  | 
 | ||
|  | /*! \file threadlocal.h
 | ||
|  |     \brief Provides storage-slots for thread-specific data. | ||
|  | */ | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | typedef struct kinc_thread_local { | ||
|  | 	kinc_thread_local_impl_t impl; | ||
|  | } kinc_thread_local_t; | ||
|  | 
 | ||
|  | /// <summary>
 | ||
|  | /// Initializes a thread-specific storage-slot.
 | ||
|  | /// </summary>
 | ||
|  | /// <param name="local">The storage-slot to initialize</param>
 | ||
|  | KINC_FUNC void kinc_thread_local_init(kinc_thread_local_t *local); | ||
|  | 
 | ||
|  | /// <summary>
 | ||
|  | /// Destroys a storage-slot.
 | ||
|  | /// </summary>
 | ||
|  | /// <param name="local">The storage-slot to destroy</param>
 | ||
|  | KINC_FUNC void kinc_thread_local_destroy(kinc_thread_local_t *local); | ||
|  | 
 | ||
|  | /// <summary>
 | ||
|  | /// Gets the data in the storage-slot.
 | ||
|  | /// </summary>
 | ||
|  | /// <param name="local">The slot to query</param>
 | ||
|  | KINC_FUNC void *kinc_thread_local_get(kinc_thread_local_t *local); | ||
|  | 
 | ||
|  | /// <summary>
 | ||
|  | /// Sets the data in the storage-slot.
 | ||
|  | /// </summary>
 | ||
|  | /// <param name="local">The slot to put the data into</param>
 | ||
|  | /// <param name="data">The data to put in the slot</param>
 | ||
|  | KINC_FUNC void kinc_thread_local_set(kinc_thread_local_t *local, void *data); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 |