(in-package :glib) #+thread-support (progn (defun glib-stop-thread () (setf *threads-initialized-p* nil)) (defun glib-start-thread () (g-thread-init (null-pointer)) (setf *threads-initialized-p* t)) (pushnew 'glib-stop-thread sb-ext:*save-hooks*) (pushnew 'glib-start-thread sb-ext:*init-hooks*)) (defun map-inherited-classes (class fn) (when (symbolp class) (setf class (find-class class))) (when class (funcall fn class) (iter (for subclass in (closer-mop:class-direct-subclasses class)) (map-inherited-classes subclass fn)))) (defun initialize-all-gobject-types () (map-inherited-classes 'gobject::g-object (lambda (class) (when (typep class 'gobject::gobject-class) (gobject::initialize-gobject-class-g-type class))))) (pushnew 'initialize-all-gobject-types sb-ext:*init-hooks*)