Verfasst: 16.11.2008 22:37
@Fluid Byte:
Du mußt natürlich wenn du nicht "threadsafe" nutzt unbedingt bei JEDER Stringnutzung in JEDEM thred den selben Mutzex nutzen. vergißt du es nur einmal cracht es irgendwann.
@Thorium:
Nebenbei gilt dies nicht nur für Stringvariablen, sondern alle funktionen die strings auf irgendeine weise nutzen.
Es müssen also klar gesagt entweder die Compileroption "threadsafe" genutzt werden oder ALLE Strings (und Funktione und Befehel mit Strings) in ALLEN thread UND dem Hauptcode durch den selben Mutex geschützt werden. nur einmal vergessen und schon ist das Programm fehlerhaft.
Toshy
Du mußt natürlich wenn du nicht "threadsafe" nutzt unbedingt bei JEDER Stringnutzung in JEDEM thred den selben Mutzex nutzen. vergißt du es nur einmal cracht es irgendwann.
@Thorium:
Leider total falsch. Wenn du z.b mutex a& nutzt um sting b$ zu schützen MUßT (!!!) du bei ALLEN Stings des kompletten Programms diese mit dem Mutex a& schutzen. Bei Stings kommt im gegensatz zu anderen Variablentypen nicht nur ein schreibfehler bei der bestimmten Stringvariablen irgendwann vor, sondern zu ganze Stringverwaltung kommt durcheinander. So wurde es auf jedenfall mal von Fred erklärt und übersetzt. Verschiedene Stings mit verschiedenen Mutex zu schützen geht also normalerweise NICHT.Das der Mutex da nix bringt ist klar. Da du ja nur von einer Stelle aus auf die Highscore zugreifst. Ein Mutex bringt nur was, wenn mehrere Codestellen auf die gleiche Ressource (z.b. String) zugreifen.
Nebenbei gilt dies nicht nur für Stringvariablen, sondern alle funktionen die strings auf irgendeine weise nutzen.
Es müssen also klar gesagt entweder die Compileroption "threadsafe" genutzt werden oder ALLE Strings (und Funktione und Befehel mit Strings) in ALLEN thread UND dem Hauptcode durch den selben Mutex geschützt werden. nur einmal vergessen und schon ist das Programm fehlerhaft.
Toshy