Files
UU_la_parallel_programming_…/Assignment_3/lib/SimpleLockingStack.cpp

26 lines
680 B
C++

#include "SimpleLockingStack.h"
#include "ADT_Stack.h"
SimpleLockingStack::SimpleLockingStack(ADTOperationQueue * queue) : Stack(queue) { }
void SimpleLockingStack::push(int element) {
mut.lock();
vec.push_back(element);
op_queue->enqueue(create_operation(methodname::push, element));
mut.unlock();
}
int SimpleLockingStack::pop() {
mut.lock();
int e = vec.back();
vec.pop_back();
op_queue->enqueue(create_operation(methodname::pop, e));
mut.unlock();
return e;
}
int SimpleLockingStack::size() {
mut.lock();
int s = vec.size();
op_queue->enqueue(create_operation(methodname::size, s));
mut.unlock();
return s;
}