summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qrunnable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/thread/qrunnable.cpp')
-rw-r--r--src/corelib/thread/qrunnable.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/corelib/thread/qrunnable.cpp b/src/corelib/thread/qrunnable.cpp
index bd0a32b53d..c911cd0745 100644
--- a/src/corelib/thread/qrunnable.cpp
+++ b/src/corelib/thread/qrunnable.cpp
@@ -114,4 +114,31 @@ QRunnable::~QRunnable()
\sa autoDelete(), QThreadPool
*/
+class FunctionRunnable : public QRunnable
+{
+ std::function<void()> m_functionToRun;
+public:
+ FunctionRunnable(std::function<void()> functionToRun) : m_functionToRun(std::move(functionToRun))
+ {
+ }
+ void run() override
+ {
+ m_functionToRun();
+ }
+};
+
+/*!
+ \since 5.15
+
+ Creates a QRunnable that calls \a functionToRun in run().
+
+ Auto-deletion is enabled by default.
+
+ \sa run(), autoDelete()
+*/
+QRunnable *QRunnable::create(std::function<void()> functionToRun)
+{
+ return new FunctionRunnable(std::move(functionToRun));
+}
+
QT_END_NAMESPACE