gobject idle funktioniert nicht so richtig

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gugugs hat geschrieben:Habe es nun auf zwei anderen Rechnern getestet, da passiert nichts, läuft dort einwandfrei.
GTK/PyGTK-Versionen geprüft? Vielleicht wurde das dort bereits ausgebessert oder es wird anderer Code verwendet (zum Beispiel unter einem anderen OS).
gugugs hat geschrieben:Also allgemein? Kann dieser Speicherzugriffsfehler kommen, wenn man allgemein, einen unordentlichen Code schreibt, oder kann man das ein wenig, spezialisieren, das man sagen kann, es kommt von bestimmtem Kombinationen?
Scher zu sagen, da ich mir deine 1000 Zeilen nicht wirklich antun will, aber die Closure die du da als Callback übergibst könnte eine Problemursache sein. Oder irgendetwas anderes. Jedenfalls sollte der Interpreter in Python nie mit einem solchen Fehler beendet werden, also ist da auf C-Ebene irgendein Bug aufgetreten.

(Sowas hatte ich damals auf wx unter Windows am laufenden Band und lustigerweise haben alle meine Versuche diese Bugs anders zu umgehen wiederrum zu anderen Bugs geführt. Ziemlich frustrierend. Ist aber schon eine Zeitlang her).
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

Sollte man das jetzt möglichst unterlassen? Oder kann man da weiter machen, in der Hoffnung, das es wirklich an dem PC lag, mit dem es getestet wurde. Wie hoch ist denn die Wahrscheinlichkeit, das es am RAM an pygtk, oder am Code liegt? Also was trifft denn eher zu? Denn ich bin mir gar nicht so unsicher, das es an meinem RAM liegen könnte. Hab aber noch kein memtest gemacht.
aber die Closure die du da als Callback übergibst könnte eine Problemursache sein.
In wie fern?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gugugs hat geschrieben:Sollte man das jetzt möglichst unterlassen? Oder kann man da weiter machen, in der Hoffnung, das es wirklich an dem PC lag, mit dem es getestet wurde. Wie hoch ist denn die Wahrscheinlichkeit, das es am RAM an pygtk, oder am Code liegt?
Ähm, wer sollte das wissen?
gugugs hat geschrieben:
aber die Closure die du da als Callback übergibst könnte eine Problemursache sein.
In wie fern?
Vermutung. Closures sind ja in C eher nicht alltäglich, vielleicht räumt da also irgendein C-Code die Closure weg und versucht danach darauf zuzugreifen. Keine Ahnung, war nur eine Schätzung.
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

Ich weiß leider nicht so genau, was Closures sind, beziehungsweise, was ich darunter verstehe. Wie kann ich das Problem am besten angehen?

edit: wenn ich das richtig verstehe, dann geht dieser Beitrag http://de.wikipedia.org/wiki/Closure in etwa in meine Richtung? Denn so ganz habe ich das noch nicht verstanden
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gugugs hat geschrieben:Iedit: wenn ich das richtig verstehe, dann geht dieser Beitrag http://de.wikipedia.org/wiki/Closure in etwa in meine Richtung? Denn so ganz habe ich das noch nicht verstanden
Eine Closure ist vereinfacht gesagt eine Funktion in einer Funktion.
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

Ich verstehe irgendwie nicht so ganz, wo das bei mir vorkommt.
Schon mal Danke
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gugugs hat geschrieben:Ich verstehe irgendwie nicht so ganz, wo das bei mir vorkommt.
Die Funktion ``progress`` aus deinem Codeschnippsel.

Du solltest wirklich deinen Code strukturieren, wenn du sebst nicht mehr weißt wo was vorkommt. 1000 Zeilen sind nicht nur für uns zu viel, für dich sind die 1000 Zeilen eigentlich auch zu viel.
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

Das hatte ich leider schon geändert, daran liegt es leider nicht. Es ist wirklich komisch, denn dieser Fehler kommt wirklich auch dann, wenn ich nur diese Funktion benutze, die ich vorher gepostet habe, also kein andren Code. Und ich hab es an zwei verschiedenen PC's getestet, die beide die gleiche Python Version hatten, und bei dem einen gings, und bei dem anderen nicht. Es kommt auch wirklich seehr sporadisch vor
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

PyGTK Versionen? GTK+ Versionen? OS?
Antworten