#include <ucontext.h>
#include <stdint.h>
-#include <vector>
#include "mymemory.h"
#include <threads.h>
#include "modeltypes.h"
+#include "stl-model.h"
struct thread_params {
thrd_start_t func;
* @see Thread::pending */
void set_pending(ModelAction *act) { pending = act; }
+ Thread * waiting_on() const;
+
/**
* Remove one ModelAction from the waiting list
* @return The ModelAction that was removed from the waiting list
* to allow their allocation/deallocation to follow the same pattern as
* the rest of the backtracked/replayed program.
*/
+ void * operator new(size_t size) {
+ return Thread_malloc(size);
+ }
+ void operator delete(void *p, size_t size) {
+ Thread_free(p);
+ }
+ void * operator new[](size_t size) {
+ return Thread_malloc(size);
+ }
+ void operator delete[](void *p, size_t size) {
+ Thread_free(p);
+ }
private:
int create_context();
* list is used for thread joins, where another Thread waits for this
* Thread to complete
*/
- std::vector< ModelAction *, SnapshotAlloc<ModelAction *> > wait_list;
+ SnapVector<ModelAction *> wait_list;
/**
* The value returned by the last action in this thread