1234567891011121314151617181920212223242526272829303132333435 |
- #pragma once
- #include "foundation/atomics.h"
- #include "lfitem.h"
- template <class value_t>
- class LockFreeItem
- {
- public:
- typedef value_t *ptr_t;
- LockFreeItem()
- {
- lfitem_init(&item);
- }
-
- value_t *GetItem()
- {
- return (value_t *)lfitem_get(&item);
- }
-
- value_t *SetItem(value_t *new_item)
- {
- return (value_t *)lfitem_set(&item, new_item);
- }
-
- value_t *SetItemIfZero(value_t *new_item)
- {
- return (value_t *)lfitem_set_if_zero(&item, new_item);
- }
- lfitem_value_t item;
- };
|