u_queue: add util_queue_fence_reset
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -328,8 +328,6 @@ util_queue_add_job(struct util_queue *queue,
|
||||
{
|
||||
struct util_queue_job *ptr;
|
||||
|
||||
assert(fence->signalled);
|
||||
|
||||
mtx_lock(&queue->lock);
|
||||
if (queue->kill_threads) {
|
||||
mtx_unlock(&queue->lock);
|
||||
@@ -339,7 +337,7 @@ util_queue_add_job(struct util_queue *queue,
|
||||
return;
|
||||
}
|
||||
|
||||
fence->signalled = false;
|
||||
util_queue_fence_reset(fence);
|
||||
|
||||
assert(queue->num_queued >= 0 && queue->num_queued <= queue->max_jobs);
|
||||
|
||||
|
@@ -59,6 +59,19 @@ void util_queue_fence_destroy(struct util_queue_fence *fence);
|
||||
void util_queue_fence_wait(struct util_queue_fence *fence);
|
||||
void util_queue_fence_signal(struct util_queue_fence *fence);
|
||||
|
||||
/**
|
||||
* Move \p fence back into unsignalled state.
|
||||
*
|
||||
* \warning The caller must ensure that no other thread may currently be
|
||||
* waiting (or about to wait) on the fence.
|
||||
*/
|
||||
static inline void
|
||||
util_queue_fence_reset(struct util_queue_fence *fence)
|
||||
{
|
||||
assert(fence->signalled);
|
||||
fence->signalled = 0;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
util_queue_fence_is_signalled(struct util_queue_fence *fence)
|
||||
{
|
||||
|
Reference in New Issue
Block a user