mirror of
https://github.com/clementine-player/Clementine
synced 2025-01-29 02:29:56 +01:00
Commit missing modifications/change ConcurrentRun description a bit
This commit is contained in:
parent
76b98000fe
commit
01daea7090
@ -26,19 +26,21 @@
|
||||
|
||||
/*
|
||||
The aim of ThreadFunctor classes and ConcurrentRun::Run() functions is to
|
||||
complete QtConcurrentRun, which lack support of using a particular
|
||||
complete QtConcurrentRun, which lack support for using a particular
|
||||
QThreadPool, as it always uses QThreadPool::globalInstance().
|
||||
|
||||
This is problematic when we do not want to share the same thread pool over
|
||||
all the application, but want to keep the convenient QtConcurrent::run()
|
||||
functor syntax: time critical changes are performed in their own pool, which
|
||||
is not empty by other actions, like when using QtConcurrentRun::run()
|
||||
functor syntax.
|
||||
With ConcurrentRun::Run(), time critical changes are performed in their own
|
||||
pool, which is not empty by other actions (as it happens when using
|
||||
QtConcurrentRun::run())
|
||||
|
||||
ThreadFunctor classes are used to store a functor and its arguments, and
|
||||
Run() functions are used for convenience: to directly create a new
|
||||
ThreadFunctor object and start it.
|
||||
|
||||
Currently, only functions with two arguments and a return value are
|
||||
Currently, only functions with one or two arguments and a return value are
|
||||
supported, but other might be added easily for X arguments by defining a new
|
||||
ThreadFunctorBasX class, and add new Run() function.
|
||||
*/
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "gstelementdeleter.h"
|
||||
#include "gstengine.h"
|
||||
#include "gstenginepipeline.h"
|
||||
#include "core/concurrentrun.h"
|
||||
#include "core/logging.h"
|
||||
#include "core/utilities.h"
|
||||
#include "internet/internetmodel.h"
|
||||
@ -781,7 +782,8 @@ GstState GstEnginePipeline::state() const {
|
||||
}
|
||||
|
||||
QFuture<GstStateChangeReturn> GstEnginePipeline::SetState(GstState state) {
|
||||
return QtConcurrent::run(&gst_element_set_state, pipeline_, state);
|
||||
return ConcurrentRun::Run<GstStateChangeReturn, GstElement*, GstState>(
|
||||
&set_state_threadpool_, &gst_element_set_state, pipeline_, state);
|
||||
}
|
||||
|
||||
bool GstEnginePipeline::Seek(qint64 nanosec) {
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <QFuture>
|
||||
#include <QMutex>
|
||||
#include <QObject>
|
||||
#include <QThreadPool>
|
||||
#include <QTimeLine>
|
||||
#include <QUrl>
|
||||
|
||||
@ -259,6 +260,8 @@ class GstEnginePipeline : public QObject {
|
||||
GstElement* audiosink_;
|
||||
|
||||
uint bus_cb_id_;
|
||||
|
||||
QThreadPool set_state_threadpool_;
|
||||
};
|
||||
|
||||
#endif // GSTENGINEPIPELINE_H
|
||||
|
@ -140,6 +140,7 @@ add_test_file(translations_test.cpp false)
|
||||
add_test_file(utilities_test.cpp false)
|
||||
#add_test_file(xspfparser_test.cpp false)
|
||||
add_test_file(closure_test.cpp false)
|
||||
add_test_file(concurrentrun_test.cpp false)
|
||||
|
||||
#if(LINUX AND HAVE_DBUS)
|
||||
# add_test_file(mpris1_test.cpp true)
|
||||
|
Loading…
x
Reference in New Issue
Block a user