fix sigsev at program close by adding destructor at program close

This commit is contained in:
Fabian Posch 2024-01-11 16:01:53 -05:00
parent d7da698fca
commit 268c532745
2 changed files with 8 additions and 1 deletions

View file

@ -42,10 +42,10 @@ using OutputType = pl::SimOutputArtifact;
class TaskInterface {
public:
TaskInterface(size_t buffer_size);
~TaskInterface();
void wait_for_fresh();
void wait_for_finished();

View file

@ -29,6 +29,13 @@ TaskInterface::TaskInterface(size_t buffer_size) {
this->buffer_size = buffer_size;
}
TaskInterface::~TaskInterface() {
bool empty = false;
while (!empty) this->pop_fresh(empty);
empty = false;
while (!empty) this->pop_finished(empty);
}
void TaskInterface::push_fresh(std::unique_ptr<InputType> task) {
// lock the queue and insert into it