]>
code.delx.au - pulseaudio/blob - src/mainloop-api.c
3 #include "mainloop-api.h"
6 void (*callback
)(void *userdata
);
10 static void once_callback(struct pa_mainloop_api
*api
, void *id
, void *userdata
) {
11 struct once_info
*i
= userdata
;
12 assert(api
&& i
&& i
->callback
);
13 i
->callback(i
->userdata
);
14 assert(api
->cancel_fixed
);
15 api
->cancel_fixed(api
, id
);
19 void pa_mainloop_api_once(struct pa_mainloop_api
* api
, void (*callback
)(void *userdata
), void *userdata
) {
22 assert(api
&& callback
);
24 i
= malloc(sizeof(struct once_info
));
26 i
->callback
= callback
;
27 i
->userdata
= userdata
;
29 assert(api
->source_fixed
);
30 id
= api
->source_fixed(api
, once_callback
, i
);
33 /* Note: if the mainloop is destroyed before once_callback() was called, some memory is leaked. */