GO auf OS X 10.6.8

  • Nach einem Hänger mit dem Ext.Set:


    Thread 1


    Thread 2


    Thread 5


    Thread 7


    Thread 12


    Thread 13


    Thread 14


    Thread 15

  • Der Fehler deutet auf keinen Hänger in GO hin. Thread 2 bis 15 sind unauffällig.
    Thread 1 lässt das OS X gerade eine Grafik auf den Bildschirm zeichnen:


    So das Userinterface von GO hängt (keine Reaktion auf Maus/Tastatur), würde ich von einen Problem in OS X ausgehen. Es wirkt auf mich wie ein Hänger bei der Synchronisierung der Bildschirmausgabe, der auch in anderen Programmen auftreten könnte.


    Google findet ähnliche Hänger, zB:
    https://code.google.com/p/chromium/issues/detail?id=230908
    http://www.scsc.no/blog/2007/0…-window-server-hangs.html


    Irgendetwas ausfälliges beim WindowServer Prozess?


    Für OS X 10.6.8 gibt es wahrscheinlich keine Updates mehr. Grafiktreiber aktuell?

  • Als Workaround könnte man versuchen, die 6144 sehr stark zu erhöhen:
    src/grandorgu/GOrgueSound.cpp

    Code
    1. if (meter_counter >= 6144) // update 44100 / (N / 2) = ~14 times per second


    Wert *10 (bzw. *20 oder noch mehr) reduziert die Anzahl der Zeichenrequest stark.

  • Wenn OS X hängt, kann ich wenig machen - das Auftreten des Fehlers sollte auch nichts mit den Sampleset zu tun haben.


    * Schau, das alle Updates (OS X + Grafiktreiber) eingespielt sind.
    * Die Änderung beim Vergleich vom meter_count [inkl. make danach - siehe letzter Beitrag von mir], reduziert die Nutzung der Funktion und daher die Auftretenswahrscheinlichkeit.
    * Klassifiziere mehere Hänger im GDB [wie zu letzt]:
    Wenn du in "thread 1" einen Hänger ohne _CGSSynchronizeWindowBackingStore () im bt Output hast, hast du etwas neues zum Posten.
    Wenn _CGSSynchronizeWindowBackingStore () im bt Output auftritt, wieder mittels "thread 1" zu diesen Thread wechseln. Dann "finish" eingeben.
    Wenn nichts weiter passiert, sind die Grafik-Routinen stecken geblieben. Es bleibt nur eine Reduktion der Grafikausgabe, damit der Hänger weniger wahrscheinlich auftritt.
    Falls der gdb Prompt wieder kommt, 10 Mal wiederholt "bt" und dann "finish" machen. Wenn irgendeines der finish hängen bleibt, siehe oben. Wenn das letzte "finish" wieder zum GO Prompt führt, hängt OS X nicht komplett.