Blender  V3.3
BLI_linklist_lockfree.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2018 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 typedef struct LockfreeLinkNode {
16  /* NOTE: "Subclass" this structure to add custom-defined data. */
18 
19 typedef struct LockfreeLinkList {
20  /* We keep a dummy node at the beginning of the list all the time.
21  * This allows us to make sure head and tail pointers are always
22  * valid, and saves from annoying exception cases in insert().
23  */
25  /* NOTE: This fields might point to a dummy node. */
28 
29 typedef void (*LockfreeeLinkNodeFreeFP)(void *link);
30 
31 /* ************************************************************************** */
32 /* NOTE: These functions are NOT safe for use from threads. */
33 /* NOTE: !!! I REPEAT: DO NOT USE THEM WITHOUT EXTERNAL LOCK !!! */
34 
37 
40 
45 
51 
52 /* ************************************************************************** */
53 /* NOTE: These functions are safe for use from threads. */
54 
56 
57 #ifdef __cplusplus
58 }
59 #endif
OperationNode * node
SyclQueue void void size_t num_bytes void
static PyObject * free_func(PyObject *, PyObject *value)
Definition: python.cpp:220
struct LockfreeLinkNode * next