File indexing completed on 2024-04-28 15:34:48

0001 /* -*- C++ -*-
0002     This file is part of ThreadWeaver.
0003 
0004     SPDX-FileCopyrightText: 2005-2013 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #include "src/queue.h"
0010 
0011 #include "WaitForIdleAndFinished.h"
0012 
0013 using namespace ThreadWeaver;
0014 
0015 WaitForIdleAndFinished::WaitForIdleAndFinished(Queue *weaver)
0016     : weaver_(weaver)
0017 {
0018     Q_ASSERT(weaver);
0019     weaver_->finish();
0020     Q_ASSERT(weaver_->isIdle());
0021     weaver_->resume();
0022 }
0023 
0024 WaitForIdleAndFinished::~WaitForIdleAndFinished()
0025 {
0026     weaver_->resume();
0027     weaver_->dequeue();
0028     weaver_->finish();
0029     weaver_->suspend();
0030     Q_ASSERT(weaver_->isIdle());
0031 }