diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-05-17 16:34:08 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-05-17 18:41:54 -0300 |
commit | 75d27311e5780bd12ab26380d31b100144d9aaf7 (patch) | |
tree | 3bf398950f2492566d8b4bae97da251323d2e132 /PySide | |
parent | ba448baf4d35df26035e23bf1c6c5608375b0030 (diff) | |
download | pyside-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.xml | 36 |
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"> |