When i add to source in function indle_cb this debug strings (with KSKSA label):

static gboolean idle_cb(void *userdata) {
    SoundEventData *d;
    idle_id = 0;
    g_print("KSKSA here: idle_cb\n");

    while ((d = g_queue_pop_head(&sound_event_queue))) {

        if (!(d = filter_sound_event(d)))
            continue;

/*         g_message("Dispatching signal %s on %s", 
g_signal_name(d->signal_id), g_type_name(G_OBJECT_TYPE(d->object))); */

        dispatch_sound_event(d);
        free_sound_event(d);
    }
    g_print("KSKSA here: idle_cb END\n");

    return FALSE;
}

i get this log from my multi thread program:


entered
leave
KSKSA here: idle_cb
KSKSA here: idle_cb END
KSKSA here: idle_cb
KSKSA here: idle_cb END
entered
leave
KSKSA here: idle_cb
KSKSA here: idle_cb END
KSKSA here: idle_cb
KSKSA here: idle_cb END
KSKSA here: idle_cb
entered
KSKSA here: idle_cb END
leave
KSKSA here: idle_cb
KSKSA here: idle_cb END
KSKSA here: idle_cb
entered
KSKSA here: idle_cb END
leave
KSKSA here: idle_cb
KSKSA here: idle_cb END
entered
leave
KSKSA here: idle_cb
KSKSA here: idle_cb END
KSKSA here: idle_cb
KSKSA here: idle_cb END
KSKSA here: idle_cb
entered
*** glibc detected *** ./durak: munmap_chunk(): invalid pointer: 0x09ca8a00 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6[0xb7562b04]
/usr/lib/libX11.so.6[0xb741a01e]
/usr/lib/libX11.so.6(_XReply+0x10d)[0xb741a66d]
/usr/lib/libX11.so.6(XGetGeometry+0x6d)[0xb73f67ad]
/usr/lib/libgdk-x11-2.0.so.0[0xb7b3e5e4]
/usr/lib/libgdk-x11-2.0.so.0(gdk_window_get_geometry+0xb5)[0xb7b14295]
/usr/lib/libgdk-x11-2.0.so.0(gdk_screen_get_monitor_at_window+0xaa)[0xb7b1225a]
/home/wieker/Projects/old/durak/libcanberra-0.12/src/.libs/libcanberra-gtk.so.0(ca_gtk_proplist_set_for_widget+0x1f6)[0xb6870616]
/home/wieker/Projects/old/durak/libcanberra-0.12/src/.libs/libcanberra-gtk.so.0(ca_gtk_proplist_set_for_event+0x67)[0xb6870847]
/home/wieker/Projects/old/durak/libcanberra-0.12/src/.libs/libcanberra-gtk.so.0(ca_gtk_play_for_event+0x52)[0xb6870f32]
/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so[0xb7f208b3]
/usr/lib/libglib-2.0.so.0[0xb77e4581]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1e8)[0xb77e6368]
/usr/lib/libglib-2.0.so.0[0xb77e98c3]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1ca)[0xb77e9d8a]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb9)[0xb7c9ec39]
./durak[0x804a4f7]
./durak[0x804a604]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb750a775]
./durak[0x8049531]
======= Memory map: ========

where "entered" - when my thread B use gdk_threads_enter, "leave" - when it use 
gdk_threads_leave().
so idle_cb shouldn't work together with my thread B, but it work, because it 
doesn't lock with
gdk_threads_enter().


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to