diff options
| author | @syxhe <https://t.me/syxhe> | 2025-04-21 21:26:23 -0500 |
|---|---|---|
| committer | @syxhe <https://t.me/syxhe> | 2025-04-21 21:26:23 -0500 |
| commit | 521e9a2fc8e0ef1dffe4e590d0d4f65292f0d1df (patch) | |
| tree | b85e149b645dcdaa4ef2a7345a4898c39a683f8d /src/ll.h | |
| parent | 9cf4667331b97f1123f4156273a46558e27c2d2d (diff) | |
Implement a Concurrent Queue
Diffstat (limited to 'src/ll.h')
| -rw-r--r-- | src/ll.h | 3 |
1 files changed, 3 insertions, 0 deletions
| @@ -25,6 +25,7 @@ typedef void (*dll_freecb)(void*); | |||
| 25 | typedef struct dlinked dlinkedlist; | 25 | typedef struct dlinked dlinkedlist; |
| 26 | 26 | ||
| 27 | #ifndef __VXGG_REWRITE___LL_INTERNAL___ | 27 | #ifndef __VXGG_REWRITE___LL_INTERNAL___ |
| 28 | |||
| 28 | dlinkedlist * dlinkedlist_init(void); | 29 | dlinkedlist * dlinkedlist_init(void); |
| 29 | void dlinkedlist_free(dlinkedlist *ll); | 30 | void dlinkedlist_free(dlinkedlist *ll); |
| 30 | int dlinkedlist_append(dlinkedlist * const ll, void *data, dll_freecb fcb); | 31 | int dlinkedlist_append(dlinkedlist * const ll, void *data, dll_freecb fcb); |
| @@ -32,11 +33,13 @@ int dlinkedlist_prepend(dlinkedlist * const ll, void *data, dll_freecb fcb); | |||
| 32 | int dlinkedlist_insert(dlinkedlist * const ll, void *data, dll_freecb fcb, int index); | 33 | int dlinkedlist_insert(dlinkedlist * const ll, void *data, dll_freecb fcb, int index); |
| 33 | void* dlinkedlist_get(const dlinkedlist * const ll, int index); | 34 | void* dlinkedlist_get(const dlinkedlist * const ll, int index); |
| 34 | int dlinkedlist_remove(dlinkedlist * const ll, int index); | 35 | int dlinkedlist_remove(dlinkedlist * const ll, int index); |
| 36 | void * dlinkedlist_poplast(dlinkedlist *ll); | ||
| 35 | 37 | ||
| 36 | int dlinkedlist_size(const dlinkedlist * const ll); | 38 | int dlinkedlist_size(const dlinkedlist * const ll); |
| 37 | #define dlinkedlist_isempty(ll) (dlinkedlist_size((ll)) == 0) | 39 | #define dlinkedlist_isempty(ll) (dlinkedlist_size((ll)) == 0) |
| 38 | 40 | ||
| 39 | int dlinkedlist_foreach(dlinkedlist *ll, int (*callback)(void*)); | 41 | int dlinkedlist_foreach(dlinkedlist *ll, int (*callback)(void*)); |
| 42 | |||
| 40 | #endif | 43 | #endif |
| 41 | 44 | ||
| 42 | #endif \ No newline at end of file | 45 | #endif \ No newline at end of file |
