Is this a threading issue?



Hi I am developing a media player app using gtkmm and gstreamer. Unfortunately it isn't yet in a state for sources to be released. I am encountering a problem and I can't seem to solve it. Furthermore this problem is somewhat random. The code occasionally works as it should, but most of the time it crashes. This code is called after a series of signals/callbacks. I'll attempt to explain:

main_window class is a classed derived from Gtk::Window
Playfile class is my own custom class, it isn't based on any widget, it just uses libsigc for signals

In Playfile I connect a gstreamer callback to a method of Playfile which is static. When this method is called, it is passed a pointer to the instance of Playfile. I use this pointer to call another method of Playfile(needed to access the instance's vars). This method, does some work and finally it emits a signal. This signal is catched by a method in the main_window instance. Then in that method I create a Gtk::MessageDialog. But when I try to run() it the app crashes(most of the time). The only error I get in the console is this:

media_player: ../../src/xcb_io.c:176: process_responses: Assertion `!(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0))' failed.


media_player is the name of the app.

I know that I haven't given you any code, but do you have any idea what is happening? Since it sometimes works, I suspect that this is a threading issue(in gtkmm/gtk or gstreamer). I don't use threads, the app is single threaded. Do you have any suggestions on what to do?


Μοιραστείτε τις αναμνήσεις σας μέσω Internet με τους φίλους σας με τους φίλους σας.


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