mesa/src/gallium/frontends/nine/threadpool.h
David Heidelberg 81d3de71cd nine: convert licenses block to SPDX
Convert licensing information using ISO/IEC 5962:2021 to SPDX format.

Acked-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: lorn10 <kle@bluewin.ch>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27971>
2024-03-13 18:58:14 +00:00

42 lines
1.1 KiB
C

/*
* Copyright © 2012 Intel Corporation
* SPDX-License-Identifier: MIT
*/
#ifndef _THREADPOOL_H_
#define _THREADPOOL_H_
#include <pthread.h>
struct NineSwapChain9;
#define MAXTHREADS 1
struct threadpool {
pthread_mutex_t m;
pthread_cond_t new_work;
HANDLE wthread;
pthread_t pthread;
struct threadpool_task *workqueue;
BOOL shutdown;
};
typedef void (*threadpool_task_func)(void *data);
struct threadpool_task {
threadpool_task_func work;
void *data;
struct threadpool_task *next;
pthread_cond_t finish;
BOOL finished;
};
struct threadpool *_mesa_threadpool_create(struct NineSwapChain9 *swapchain);
void _mesa_threadpool_destroy(struct NineSwapChain9 *swapchain, struct threadpool *pool);
struct threadpool_task *_mesa_threadpool_queue_task(struct threadpool *pool,
threadpool_task_func func,
void *data);
void _mesa_threadpool_wait_for_task(struct threadpool *pool,
struct threadpool_task **task);
#endif