projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
main: suggest thrd_yield() for -y fairness
[model-checker.git]
/
threads.cc
diff --git
a/threads.cc
b/threads.cc
index 5bfd028746aa99f314263d90d4f7234df629b63b..a0bc02970aa9ff71c6e8e1a04f6565d52b6db43a 100644
(file)
--- a/
threads.cc
+++ b/
threads.cc
@@
-93,7
+93,7
@@
int Thread::create_context()
int Thread::swap(Thread *t, ucontext_t *ctxt)
{
t->set_state(THREAD_READY);
int Thread::swap(Thread *t, ucontext_t *ctxt)
{
t->set_state(THREAD_READY);
- return swapcontext(&t->context, ctxt);
+ return
model_
swapcontext(&t->context, ctxt);
}
/**
}
/**
@@
-107,7
+107,7
@@
int Thread::swap(Thread *t, ucontext_t *ctxt)
int Thread::swap(ucontext_t *ctxt, Thread *t)
{
t->set_state(THREAD_RUNNING);
int Thread::swap(ucontext_t *ctxt, Thread *t)
{
t->set_state(THREAD_RUNNING);
- return swapcontext(ctxt, &t->context);
+ return
model_
swapcontext(ctxt, &t->context);
}
}
@@
-151,13
+151,14
@@
Thread::Thread(thread_id_t tid) :
* @param func The function that the thread will call.
* @param a The parameter to pass to this function.
*/
* @param func The function that the thread will call.
* @param a The parameter to pass to this function.
*/
-Thread::Thread(thrd_t *t, void (*func)(void *), void *a, Thread *parent) :
+Thread::Thread(thr
ead_id_t tid, thr
d_t *t, void (*func)(void *), void *a, Thread *parent) :
parent(parent),
creation(NULL),
pending(NULL),
start_routine(func),
arg(a),
user_thread(t),
parent(parent),
creation(NULL),
pending(NULL),
start_routine(func),
arg(a),
user_thread(t),
+ id(tid),
state(THREAD_CREATED),
last_action_val(VALUE_NONE),
model_thread(false)
state(THREAD_CREATED),
last_action_val(VALUE_NONE),
model_thread(false)
@@
-169,7
+170,6
@@
Thread::Thread(thrd_t *t, void (*func)(void *), void *a, Thread *parent) :
if (ret)
model_print("Error in create_context\n");
if (ret)
model_print("Error in create_context\n");
- id = model->get_next_id();
user_thread->priv = this;
}
user_thread->priv = this;
}