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