コード例 #1
0
 void decrement(){
     std::lock_guard<std::mutex> guard(mutex);
     try {
     	counter.decrement();
     } catch (std::exception& e) {
     	std::cout << "error caught"<< std::endl;
     }
 }
コード例 #2
0
ファイル: Vector_copy_write.cpp プロジェクト: nikunjy/EPL
	void force_unique() { 
		if (counter->getCount() > 1) { 
			counter->decrement();  
			counter = new Counter();
			counter->increment(); 
			Core *new_core = new Core(*(this->core)); 
			this->core = new_core;
		}
	}
コード例 #3
0
ファイル: SmartPointer.cpp プロジェクト: nikunjy/EPL
	void destroy() {
		if (counter->decrement() == 0) { 
			if (ptr == nullptr) { 
				return;
			}
			delete ptr;
			delete counter;
		}
	}
コード例 #4
0
ファイル: String_copy_on_write.cpp プロジェクト: nikunjy/EPL
	void destroy() { 
		if (counter->decrement() == 0) { 
			if (data == nullptr) { 
				return;
			}
			delete data; 
			delete counter;
			len = 0;
		}
	}
コード例 #5
0
ファイル: String_copy_on_write.cpp プロジェクト: nikunjy/EPL
	void force_unique() { 
		if (counter->getCount() > 1) {
			char * temp = data; 
			data = new char[len + 1];
			strcpy(data, temp);
			counter->decrement(); 
			counter = new Counter(); 
			counter->increment();
		}
	}
コード例 #6
0
    void decrement(){
        mutex.lock();
        try {
            counter.decrement();
        } catch (std::string e){
            mutex.unlock();
            throw e;
        }

        mutex.unlock();
    }
コード例 #7
0
 void decrement() {
   std::lock_guard<std::mutex> guard(mutex);
   counter.decrement();
 }
コード例 #8
0
ファイル: Vector_copy_write.cpp プロジェクト: nikunjy/EPL
	void destroy() { 
		if (counter->decrement() == 0) {
			delete core; 
			delete counter;
		}
	}
コード例 #9
0
 void decrement(){
     mutex.lock();
     counter.decrement();        
     mutex.unlock();
 }
コード例 #10
0
ファイル: SafeGuard.cpp プロジェクト: BenFrantzDale/articles
 void decrement(){
     std::lock_guard<std::mutex> guar(mutex);
     counter.decrement();
     //mutex.unlock();
 }