eventhack: acquire GIL, bump data tuple refcount
authorAndrew Chadwick <andrewc-git@piffle.org>
Mon, 21 Oct 2013 11:55:17 +0000 (12:55 +0100)
committerAndrew Chadwick <andrewc-git@piffle.org>
Wed, 23 Oct 2013 00:33:18 +0000 (01:33 +0100)
commit9c5178aabd9eb56586a74524bcd0e39a9da9000a
treed5a0afdfcf119a5a101dadfd59c110d7dde4fd80
parentd9fd3bea655ec3dc2311eff732a04670f67ee585
eventhack: acquire GIL, bump data tuple refcount

Ubuntu 13.10 (and maybe other systems) require the GIL to be held during
then event filter, so wrap the filter in the appropriate calls. Not
required for all systems, but it's good practice to do this given that the
filter uses Python API calls outside the scope of the Python interpreter,
where execution may or may not be threaded. Fixes a segfault on affected
systems.

http://docs.python.org/2/c-api/init.html#non-python-created-threads

Also bump the data tuple's refcount for the duration of the filter's
operation, if the display type is supported. Technically not needed given
the framework in which it's called, but will be safer in case of error.
lib/eventhack.hpp