+#include <threads.h>
+
#include "queue.h"
-struct spsc_queue_test : rl::test_suite<spsc_queue_test, 2>
-{
- spsc_queue<int> q;
+spsc_queue<int> *q;
void thread(unsigned thread_index)
{
if (0 == thread_index)
{
- q.enqueue(11);
+ q->enqueue(11);
}
else
{
- int d = q.dequeue();
+ int d = q->dequeue();
RL_ASSERT(11 == d);
}
}
-};
-int main()
+int user_main(int argc, char **argv)
{
- rl::simulate<spsc_queue_test>();
+ thrd_t A, B;
+
+ q = new spsc_queue<int>();
+
+ thrd_create(&A, (thrd_start_t)&thread, (void *)0);
+ thrd_create(&B, (thrd_start_t)&thread, (void *)1);
+ thrd_join(A);
+ thrd_join(B);
+
+ delete q;
+
+ return 0;
}