parent
							
								
									ba51100d64
								
							
						
					
					
						commit
						79e358ce6d
					
				
					 3 changed files with 121 additions and 63 deletions
				
			
		| 
						 | 
				
			
			@ -97,6 +97,7 @@ public:
 | 
			
		|||
    private:
 | 
			
		||||
        Pool & pool;
 | 
			
		||||
        std::shared_ptr<R> r;
 | 
			
		||||
        bool bad = false;
 | 
			
		||||
 | 
			
		||||
        friend Pool;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -112,7 +113,8 @@ public:
 | 
			
		|||
            if (!r) return;
 | 
			
		||||
            {
 | 
			
		||||
                auto state_(pool.state.lock());
 | 
			
		||||
                state_->idle.push_back(ref<R>(r));
 | 
			
		||||
                if (!bad)
 | 
			
		||||
                    state_->idle.push_back(ref<R>(r));
 | 
			
		||||
                assert(state_->inUse);
 | 
			
		||||
                state_->inUse--;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -121,6 +123,8 @@ public:
 | 
			
		|||
 | 
			
		||||
        R * operator -> () { return &*r; }
 | 
			
		||||
        R & operator * () { return *r; }
 | 
			
		||||
 | 
			
		||||
        void markBad() { bad = true; }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    Handle get()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue