Changes in src/libcfa/concurrency/monitor [6b0b624:bf7b9da7]
- File:
-
- 1 edited
-
src/libcfa/concurrency/monitor (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/monitor
r6b0b624 rbf7b9da7 22 22 #include "stdlib" 23 23 24 static inline void ?{}(monitor_desc * this) { 25 this->owner = NULL; 26 this->recursion = 0; 24 static inline void ?{}(monitor_desc & this) { 25 (this.lock){}; 26 this.owner = NULL; 27 (this.entry_queue){}; 28 (this.signal_stack){}; 29 this.recursion = 0; 30 this.acceptables = NULL; 31 this.acceptable_count = 0; 32 this.accepted_index = -1; 27 33 } 28 34 … … 32 38 monitor_desc ** prev_mntrs; 33 39 unsigned short prev_count; 40 fptr_t prev_func; 34 41 }; 35 42 … … 38 45 } 39 46 40 void ?{}( monitor_guard_t * this, monitor_desc ** m, int count);41 void ^?{}( monitor_guard_t *this );47 void ?{}( monitor_guard_t & this, monitor_desc ** m, int count, void (*func)() ); 48 void ^?{}( monitor_guard_t & this ); 42 49 43 50 //----------------------------------------------------------------------------- … … 64 71 }; 65 72 66 void ?{}( __condition_blocked_queue_t *);73 void ?{}( __condition_blocked_queue_t & ); 67 74 void append( __condition_blocked_queue_t *, __condition_node_t * ); 68 75 __condition_node_t * pop_head( __condition_blocked_queue_t * ); … … 74 81 }; 75 82 76 static inline void ?{}( condition *this ) {77 this ->monitors = NULL;78 this ->monitor_count = 0;83 static inline void ?{}( condition & this ) { 84 this.monitors = NULL; 85 this.monitor_count = 0; 79 86 } 80 87 81 static inline void ^?{}( condition *this ) {82 free( this ->monitors );88 static inline void ^?{}( condition & this ) { 89 free( this.monitors ); 83 90 } 84 91 … … 89 96 uintptr_t front( condition * this ); 90 97 98 //----------------------------------------------------------------------------- 99 // External scheduling 100 91 101 struct __acceptable_t { 92 void (*func)(void);102 fptr_t func; 93 103 unsigned short count; 94 monitor_desc * monitors[1];104 monitor_desc ** monitors; 95 105 }; 96 106 97 void __accept_internal( unsigned short count, __acceptable_t * acceptables, void (*func)(void));107 int __accept_internal( unsigned short count, __acceptable_t * acceptables ); 98 108 99 109 // Local Variables: //
Note:
See TracChangeset
for help on using the changeset viewer.