1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
// qthreadpool.sip generated by MetaSIP
//
// This file is part of the QtCore Python extension module.
//
// Copyright (c) 2020 Riverbank Computing Limited <info@riverbankcomputing.com>
//
// This file is part of PyQt5.
//
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file. Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
//
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license. For more information contact
// info@riverbankcomputing.com.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
class QThreadPool : QObject
{
%TypeHeaderCode
#include <qthreadpool.h>
%End
public:
QThreadPool(QObject *parent /TransferThis/ = 0);
virtual ~QThreadPool();
static QThreadPool *globalInstance() /KeepReference/;
void start(QRunnable *runnable /GetWrapper/, int priority = 0) /ReleaseGIL/;
%MethodCode
// We have to handle the object ownership manually.
if (a0->autoDelete())
sipTransferTo(a0Wrapper, sipSelf);
Py_BEGIN_ALLOW_THREADS
sipCpp->start(a0, a1);
Py_END_ALLOW_THREADS
%End
%If (Qt_5_15_0 -)
void start(SIP_PYCALLABLE functionToRun /TypeHint="Callable[[], None]"/, int priority = 0) /ReleaseGIL/;
%MethodCode
Py_INCREF(a0);
Py_BEGIN_ALLOW_THREADS
sipCpp->start([a0]() {
SIP_BLOCK_THREADS
PyObject *res;
res = PyObject_CallObject(a0, NULL);
Py_DECREF(a0);
if (res)
Py_DECREF(res);
else
pyqt5_err_print();
SIP_UNBLOCK_THREADS
}, a1);
Py_END_ALLOW_THREADS
%End
%End
bool tryStart(QRunnable *runnable /GetWrapper/) /ReleaseGIL/;
%MethodCode
// We have to handle the object ownership manually.
if (a0->autoDelete())
sipTransferTo(a0Wrapper, sipSelf);
Py_BEGIN_ALLOW_THREADS
sipRes = sipCpp->tryStart(a0);
Py_END_ALLOW_THREADS
%End
%If (Qt_5_15_0 -)
bool tryStart(SIP_PYCALLABLE functionToRun /TypeHint="Callable[[], None]"/) /ReleaseGIL/;
%MethodCode
Py_INCREF(a0);
Py_BEGIN_ALLOW_THREADS
sipRes = sipCpp->tryStart([a0]() {
SIP_BLOCK_THREADS
PyObject *res;
res = PyObject_CallObject(a0, NULL);
Py_DECREF(a0);
if (res)
Py_DECREF(res);
else
pyqt5_err_print();
SIP_UNBLOCK_THREADS
});
Py_END_ALLOW_THREADS
%End
%End
%If (Qt_5_9_0 -)
bool tryTake(QRunnable *runnable /GetWrapper/) /ReleaseGIL/;
%MethodCode
Py_BEGIN_ALLOW_THREADS
sipRes = sipCpp->tryTake(a0);
Py_END_ALLOW_THREADS
// We have to handle the object ownership manually.
if (sipRes)
sipTransferBack(a0Wrapper);
%End
%End
int expiryTimeout() const;
void setExpiryTimeout(int expiryTimeout);
int maxThreadCount() const;
void setMaxThreadCount(int maxThreadCount) /ReleaseGIL/;
int activeThreadCount() const /ReleaseGIL/;
void reserveThread() /ReleaseGIL/;
void releaseThread() /ReleaseGIL/;
bool waitForDone(int msecs = -1) /ReleaseGIL/;
%If (Qt_5_2_0 -)
void clear() /ReleaseGIL/;
%End
%If (Qt_5_5_0 -)
void cancel(QRunnable *runnable) /ReleaseGIL/;
%End
%If (Qt_5_10_0 -)
void setStackSize(uint stackSize);
%End
%If (Qt_5_10_0 -)
uint stackSize() const;
%End
};
|