X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=threads-model.h;h=eb0fd438d388931ef0316231abd828d6e5295581;hb=20994240335ce1d54fb6c4b2c8df684182f0a3f9;hp=b15c40944aedadb3114d1239d1f16b6259e51535;hpb=0a650d68e478aff11bf8b72ee04ed7cc6a102ce8;p=model-checker.git diff --git a/threads-model.h b/threads-model.h index b15c409..eb0fd43 100644 --- a/threads-model.h +++ b/threads-model.h @@ -7,11 +7,11 @@ #include #include -#include #include "mymemory.h" #include #include "modeltypes.h" +#include "stl-model.h" struct thread_params { thrd_start_t func; @@ -126,6 +126,18 @@ public: * 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(); @@ -157,7 +169,7 @@ private: * list is used for thread joins, where another Thread waits for this * Thread to complete */ - std::vector< ModelAction *, SnapshotAlloc > wait_list; + SnapVector wait_list; /** * The value returned by the last action in this thread