// -*- Mode: CFA -*- // // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo // // The contents of this file are covered under the licence agreement in the // file "LICENCE" distributed with Cforall. // // monitor -- // // Author : Thierry Delisle // Created On : Thd Feb 23 12:27:26 2017 // Last Modified By : Thierry Delisle // Last Modified On : -- // Update Count : 0 // #ifndef MONITOR_H #define MONITOR_H #include #include "assert" #include "invoke.h" #include "stdlib" static inline void ?{}(monitor_desc * this) { this->owner = NULL; this->stack_owner = NULL; this->recursion = 0; } struct monitor_guard_t { monitor_desc ** m; int count; monitor_desc ** prev_mntrs; unsigned short prev_count; }; static inline int ?monitors = NULL; this->monitor_count = 0; } static inline void ^?{}( condition * this ) { free( this->monitors ); } void wait( condition * this ); void signal( condition * this ); #endif //MONITOR_H