#include "drivelistmodelpollthread.h" #include #include /* * SPDX-License-Identifier: Apache-2.0 * Copyright (C) 2020 Raspberry Pi (Trading) Limited */ DriveListModelPollThread::DriveListModelPollThread(QObject *parent) : QThread(parent), _terminate(false) { qRegisterMetaType< std::vector >( "std::vector" ); } DriveListModelPollThread::~DriveListModelPollThread() { _terminate = true; if (!wait(2000)) { terminate(); } } void DriveListModelPollThread::stop() { _terminate = true; } void DriveListModelPollThread::start() { _terminate = false; QThread::start(); } void DriveListModelPollThread::run() { QElapsedTimer t1; while (!_terminate) { t1.start(); emit newDriveList( Drivelist::ListStorageDevices() ); if (t1.elapsed() > 1000) qDebug() << "Enumerating drives took a long time:" << t1.elapsed()/1000.0 << "seconds"; QThread::sleep(1); } }