GLib.ThreadPool is not usuable in PyGObject

Bug #1033630 reported by Florian Diesch
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
GLib
Expired
Medium
glib2.0 (Ubuntu)
Triaged
Wishlist
Unassigned

Bug Description

GLib.ThreadPool is not usuable in PyGObject as there is no way to set the function used with the threads:

Unlike documented in the GLib Reference Manual the constructor doesn't take any arguments:

>>> from gi.repository import GLib
>>> pool = GLib.ThreadPool(lambda *args: id(0), -1 , False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: function takes at most 0 arguments (3 given)

GLib.ThreadPool has a variable 'func' but reading it results in an error:

>>> pool = GLib.ThreadPool()
>>> pool.func

** (process:11679): WARNING **: Field func: Interface type 2 should have is_pointer set
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: unable to get the value

Setting it crashes the application:

>>> pool.func = lambda *args: id(0)
**
ERROR:/build/buildd/pygobject-3.2.2/gi/pygi-argument.c:1029:_pygi_argument_from_object: code should not be reached
[1] 11679 abort (core dumped) python

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: python-gi 3.2.2-1~precise
ProcVersionSignature: Ubuntu 3.2.0-27.43-generic-pae 3.2.21
Uname: Linux 3.2.0-27-generic-pae i686
NonfreeKernelModules: nvidia
ApportVersion: 2.0.1-0ubuntu11
Architecture: i386
Date: Mon Aug 6 21:14:15 2012
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)
SourcePackage: pygobject
UpgradeStatus: Upgraded to precise on 2012-04-04 (123 days ago)

Revision history for this message
Florian Diesch (diesch) wrote :
Martin Pitt (pitti)
affects: pygobject (Ubuntu) → glib2.0 (Ubuntu)
Changed in glib2.0 (Ubuntu):
status: New → Triaged
importance: Undecided → Wishlist
Changed in glib:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in glib:
status: Confirmed → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.