3 #import "OFObject+GLibThread.h"
5 int _OFObject_JubGlibThread_reference;
25 static gboolean callback0(gpointer object)
27 struct params0 *parm = object;
28 [parm->object performSelector: parm->selector];
29 [parm->object freeMemory: parm];
33 static gboolean callback1(gpointer object)
35 struct params1 *parm = object;
36 [parm->object performSelector: parm->selector
37 withObject: parm->param];
38 [parm->object freeMemory: parm];
42 static gboolean callback2(gpointer object)
44 struct params2 *parm = object;
45 [parm->object performSelector: parm->selector
46 withObject: parm->param1
47 withObject: parm->param2];
48 [parm->object freeMemory: parm];
52 @implementation OFObject (JubGlibThread)
53 - (void)performSelectorOnGLibThread: (SEL)selector
55 struct params0 *parm = [self allocMemoryWithSize: sizeof(*parm)];
57 parm->selector = selector;
58 g_idle_add(callback0, parm);
61 - (void)performSelectorOnGLibThread: (SEL)selector
62 withObject: (id)object
64 struct params1 *parm = [self allocMemoryWithSize: sizeof(*parm)];
66 parm->selector = selector;
68 g_idle_add(callback1, parm);
71 - (void)performSelectorOnGLibThread: (SEL)selector
72 withObject: (id)object1
73 withObject: (id)object2
75 struct params2 *parm = [self allocMemoryWithSize: sizeof(*parm)];
77 parm->selector = selector;
78 parm->param1 = object1;
79 parm->param2 = object2;
80 g_idle_add(callback2, parm);