Re: GTK-DirectFB clean-up problems




Iulian wrote:
> 
> I have GTK over DirectFB on a linux platform.
> I have a simple GTK application with only one window at which i connected
> "destroy" signal on which i call gtk_main_quit().
> I've installed signal handlers for SIGINT and SIGTERM
> When i catch one of these signals i call
> gtk_widget_destroy(GTK_WIDGET(main_window));
> 
> Unfortunatelly the application doesn't close gracefully (it doesn't
> clean-up DirectFB) and i got:
>  (!!!)  *** WARNING [Application exited without deinitialization of
> DirectFB!] *** [core.c:859 in dfb_core_deinit_check()]
>  (!!!)  *** WARNING [still objects in 'Window Pool'] *** [object.c:241 in
> fusion_object_pool_destroy()]
>  (!!!)  *** WARNING [still objects in 'Layer Region Pool'] ***
> [object.c:241 in fusion_object_pool_destroy()]
>  (!!!)  *** WARNING [still objects in 'Layer Context Pool'] ***
> [object.c:241 in fusion_object_pool_destroy()]
>  (!!!)  *** WARNING [still objects in 'Surface Pool'] *** [object.c:241 in
> fusion_object_pool_destroy()]
> Interface instances remaining (8): 
>   - 'IDirectFB' at 0x229ec00 (dfb) allocated in DirectFBCreate
> (directfb.c: 197)
>   - 'IDirectFBDisplayLayer' at 0x22a1400 (*context->interface) allocated
> in GetDisplayLayer_Callback (idirectfb.c: 1810)
>   - 'IDirectFBInputDevice' at 0x22a14a8 (*context->interface) allocated in
> GetInputDevice_Callback (idirectfb.c: 1838)
>   - 'IDirectFBSurface' at 0x22a6930 (iface) allocated in
> IDirectFB_CreateSurface (idirectfb.c: 819)
>   - 'IDirectFBWindow' at 0x22a7080 (*window) allocated in
> IDirectFBDisplayLayer_CreateWindow (idirectfbdisplaylayer.c: 670)
>   - 'IDirectFBSurface' at 0x22a7158 (*surface) allocated in
> IDirectFBWindow_GetSurface (idirectfbwindow.c: 354)
>   - 'IDirectFBEventBuffer' at 0x22a7570 (iface) allocated in
> IDirectFB_CreateEventBuffer (idirectfb.c: 1048)
>   - 'IDirectFBSurface' at 0x22b8b40 (iface) allocated in
> IDirectFB_CreateSurface (idirectfb.c: 819)
> 
> 
> What is the problem?
> What is the proper way to terminate a GTK application?
> 

I have the same problem like your , and i hack the gdk/directfb code , add
this code when the program exit:

GdkDisplayDFB *_display = GDK_DISPLAY_DFB(gdk_display_get_default());
_display->buffer->Release(_display->buffer);
_display->layer->Release(_display->layer);
_display->directfb->Release(_display->directfb);

Unfortunatelly also has the warning like:
(!!!)  *** WARNING [still 1 objects in pool:'Window Pool'] *** [object.c:359
in fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still 4 objects in pool:'Surface Pool'] ***
[object.c:359 in fusion_object_pool_destroy()]



-- 
View this message in context: http://old.nabble.com/GTK-DirectFB-clean-up-problems-tp22207061p26976060.html
Sent from the Gtk+ - General mailing list archive at Nabble.com.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]