12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Copyright 2009-2020 Intel Corporation
- // SPDX-License-Identifier: Apache-2.0
- #pragma once
- #include "platform.h"
- #include "mutex.h"
- #include "alloc.h"
- #include "vector.h"
- #include <vector>
- namespace embree
- {
- /*! type for thread */
- typedef struct opaque_thread_t* thread_t;
- /*! signature of thread start function */
- typedef void (*thread_func)(void*);
- /*! creates a hardware thread running on specific logical thread */
- thread_t createThread(thread_func f, void* arg, size_t stack_size = 0, ssize_t threadID = -1);
- /*! set affinity of the calling thread */
- void setAffinity(ssize_t affinity);
- /*! the thread calling this function gets yielded */
- void yield();
- /*! waits until the given thread has terminated */
- void join(thread_t tid);
- /*! type for handle to thread local storage */
- typedef struct opaque_tls_t* tls_t;
- /*! creates thread local storage */
- tls_t createTls();
- /*! set the thread local storage pointer */
- void setTls(tls_t tls, void* const ptr);
- /*! return the thread local storage pointer */
- void* getTls(tls_t tls);
- /*! destroys thread local storage identifier */
- void destroyTls(tls_t tls);
- }
|