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>
Mon, 21 Oct 2013 11:55:17 +0000 (12:55 +0100)
commitc6e1041448b6b962dc1db901a364e2e54b014a5e
tree888ce9bd3cdefdb6e961bb52d03b09f45e75cceb
parent24e413cc251f825a44a2ba5ca4b59b7d60542e84
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