88 }
89
90 ZPage* wait() {
91 return _result.get();
92 }
93
94 void satisfy(ZPage* page) {
95 _result.set(page);
96 }
97 };
98
99 ZPage* const ZPageAllocator::gc_marker = (ZPage*)-1;
100
101 ZPageAllocator::ZPageAllocator(ZWorkers* workers,
102 size_t min_capacity,
103 size_t initial_capacity,
104 size_t max_capacity,
105 size_t max_reserve) :
106 _lock(),
107 _virtual(max_capacity),
108 _physical(),
109 _cache(),
110 _min_capacity(min_capacity),
111 _max_capacity(max_capacity),
112 _max_reserve(max_reserve),
113 _current_max_capacity(max_capacity),
114 _capacity(0),
115 _used_high(0),
116 _used_low(0),
117 _used(0),
118 _allocated(0),
119 _reclaimed(0),
120 _queue(),
121 _satisfied(),
122 _safe_delete(),
123 _uncommit(false),
124 _initialized(false) {
125
126 if (!_virtual.is_initialized() || !_physical.is_initialized()) {
127 return;
128 }
|
88 }
89
90 ZPage* wait() {
91 return _result.get();
92 }
93
94 void satisfy(ZPage* page) {
95 _result.set(page);
96 }
97 };
98
99 ZPage* const ZPageAllocator::gc_marker = (ZPage*)-1;
100
101 ZPageAllocator::ZPageAllocator(ZWorkers* workers,
102 size_t min_capacity,
103 size_t initial_capacity,
104 size_t max_capacity,
105 size_t max_reserve) :
106 _lock(),
107 _virtual(max_capacity),
108 _physical(max_capacity),
109 _cache(),
110 _min_capacity(min_capacity),
111 _max_capacity(max_capacity),
112 _max_reserve(max_reserve),
113 _current_max_capacity(max_capacity),
114 _capacity(0),
115 _used_high(0),
116 _used_low(0),
117 _used(0),
118 _allocated(0),
119 _reclaimed(0),
120 _queue(),
121 _satisfied(),
122 _safe_delete(),
123 _uncommit(false),
124 _initialized(false) {
125
126 if (!_virtual.is_initialized() || !_physical.is_initialized()) {
127 return;
128 }
|