You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
637 B
C++
38 lines
637 B
C++
// ©2013 Cameron Desrochers.
|
|
// Distributed under the simplified BSD license (see the LICENSE file that
|
|
// should have come with this file).
|
|
|
|
#include "model-checker/include/threads.h"
|
|
#include "corealgo.h"
|
|
|
|
void producer_thread(void*)
|
|
{
|
|
enqueue(1234);
|
|
}
|
|
|
|
void consumer_thread(void*)
|
|
{
|
|
int element;
|
|
bool result = try_dequeue(element);
|
|
MODEL_ASSERT(!result || element == 1234);
|
|
|
|
if (result) {
|
|
MODEL_ASSERT(!try_dequeue(element));
|
|
}
|
|
}
|
|
|
|
int user_main(int, char**)
|
|
{
|
|
init();
|
|
|
|
thrd_t p, c;
|
|
|
|
thrd_create(&p, &producer_thread, nullptr);
|
|
thrd_create(&c, &consumer_thread, nullptr);
|
|
|
|
thrd_join(p);
|
|
thrd_join(c);
|
|
|
|
return 0;
|
|
}
|