mirror of
https://github.com/13hannes11/UU_la_parallel_programming_practical_assignments.git
synced 2024-09-04 00:50:58 +02:00
move if out of loop, otherwise doesn't work correctly
This commit is contained in:
@@ -50,14 +50,13 @@ bool Set::add(int element) {
|
||||
p = c;
|
||||
c = c->next;
|
||||
c->lock();
|
||||
}
|
||||
|
||||
if (c->data == element) {
|
||||
c->unlock();
|
||||
p->unlock();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
Node* n = new Node();
|
||||
n->data = element;
|
||||
n->next = c;
|
||||
@@ -67,6 +66,7 @@ bool Set::add(int element) {
|
||||
p->unlock();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool Set::rmv(int element) {
|
||||
this->first->lock();
|
||||
@@ -78,20 +78,20 @@ bool Set::rmv(int element) {
|
||||
p->unlock();
|
||||
c = c->next;
|
||||
c->lock();
|
||||
}
|
||||
|
||||
if (c->data == element) {
|
||||
p->next = c->next;
|
||||
|
||||
c->unlock();
|
||||
p->unlock();
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
c->unlock();
|
||||
p->unlock();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool Set::ctn(int element) {
|
||||
this->first->lock();
|
||||
Node* p = this->first;
|
||||
@@ -102,14 +102,15 @@ bool Set::ctn(int element) {
|
||||
p->unlock();
|
||||
c = c->next;
|
||||
c->lock();
|
||||
}
|
||||
|
||||
if (c->data == element) {
|
||||
c->unlock();
|
||||
p->unlock();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
c->unlock();
|
||||
p->unlock();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user