summaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-05-17 16:34:08 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2011-05-17 18:41:54 -0300
commit75d27311e5780bd12ab26380d31b100144d9aaf7 (patch)
tree3bf398950f2492566d8b4bae97da251323d2e132 /PySide
parentba448baf4d35df26035e23bf1c6c5608375b0030 (diff)
downloadpyside-75d27311e5780bd12ab26380d31b100144d9aaf7.tar.gz
pyside-75d27311e5780bd12ab26380d31b100144d9aaf7.tar.xz
pyside-75d27311e5780bd12ab26380d31b100144d9aaf7.zip
Fix bug 686 - "Request to make Q[Mutex|Read|Write]Locker context managers"
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org> Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'PySide')
-rw-r--r--PySide/QtCore/typesystem_core.xml36
1 files changed, 34 insertions, 2 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml
index 4c1fbae..59a8ae1 100644
--- a/PySide/QtCore/typesystem_core.xml
+++ b/PySide/QtCore/typesystem_core.xml
@@ -1162,10 +1162,32 @@
<modify-function signature="tryLockForWrite(int)" allow-thread="yes"/>
</object-type>
<object-type name="QReadLocker">
+ <modify-function signature="QReadLocker(QReadWriteLock*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ </modify-function>
<modify-function signature="relock()" allow-thread="yes" />
+ <add-function signature="__enter__()" />
+ <add-function signature="__exit__(PyObject*, PyObject*, PyObject*)">
+ <inject-code>
+ %CPPSELF.unlock();
+ </inject-code>
+ </add-function>
</object-type>
<object-type name="QWriteLocker">
+ <modify-function signature="QWriteLocker(QReadWriteLock*)">
+ <modify-argument index="1">
+ <reference-count action="set"/>
+ </modify-argument>
+ </modify-function>
<modify-function signature="relock()" allow-thread="yes" />
+ <add-function signature="__enter__()" />
+ <add-function signature="__exit__(PyObject*, PyObject*, PyObject*)">
+ <inject-code>
+ %CPPSELF.unlock();
+ </inject-code>
+ </add-function>
</object-type>
<object-type name="QDirIterator">
<enum-type name="IteratorFlag" flags="IteratorFlags"/>
@@ -2031,13 +2053,23 @@
<enum-type name="LibraryLocation"/>
</object-type>
<object-type name="QMutexLocker" copyable="no">
- <modify-function signature="QMutexLocker(QMutex*)" allow-thread="yes" />
+ <modify-function signature="QMutexLocker(QMutex*)" allow-thread="yes">
+ <modify-argument index="1">
+ <reference-count action="set" variable-name="mutex()const0"/>
+ </modify-argument>
+ </modify-function>
<modify-function signature="relock()" allow-thread="yes"/>
<modify-function signature="mutex() const">
<modify-argument index="return">
- <parent index="this" action="add"/>
+ <reference-count action="set"/>
</modify-argument>
</modify-function>
+ <add-function signature="__enter__()" />
+ <add-function signature="__exit__(PyObject*, PyObject*, PyObject*)">
+ <inject-code>
+ %CPPSELF.unlock();
+ </inject-code>
+ </add-function>
</object-type>
<object-type name="QMutex">