aboutsummaryrefslogtreecommitdiff
path: root/src/rt/sync/lock_free_queue.h
blob: 1f09ec5225c3c3b26ea83ac21a9d64690c3b506c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef LOCK_FREE_QUEUE_H
#define LOCK_FREE_QUEUE_H

class lock_free_queue_node {
public:
    lock_free_queue_node *next;
    lock_free_queue_node();
};

class lock_free_queue : lock_free_queue_node {
    lock_free_queue_node *_tail;
public:
    lock_free_queue();
    void enqueue(lock_free_queue_node *item);
    lock_free_queue_node *dequeue();
    bool is_empty();
};

#endif /* LOCK_FREE_QUEUE_H */