move if out of loop, otherwise doesn't work correctly

This commit is contained in:
2020-12-30 18:40:36 +01:00
parent 4414c55f28
commit f8666dc21b

View File

@@ -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;
}
}