Cygwin GCC und std::thread Support
-
Hey Community,
hoffe ich bin hier einigermaßen richtig mit meiner Frage. Wenn nicht, dann entschuldige ich mich jetzt schon.
Ich spiele derzeit ein wenig mit den neuen C++0x Features der GCC herum, und das mit Cygwin unter Windows (ich habe hier leider kein Dual-Boot- oder Unix-System, sonst würde ich's nativ machen...). Dazu habe ich mir einen Nightly-Build aus dem GCC Repository gezogen und compiled - funktioniert auch alles, auch die C++0x Sachen.
Als ich allerdings mit den neuen
std::threadFunktionalitäten rumprobieren wollte musste ich feststellen, dass_GLIBCXX_HAS_GTHREADSnicht definiert ist, und somit auch die Implementierung zu der Thread Library nicht angezogen werden.
Ich weiß zwar, dass Cygwin das alles etwas wackelig macht, aber bisher war mein Wissensstand, dass die
gthreadsauf denpthreadsaufbauen und die wiederum mittlerweile Bestandteil von Cygwin sind... liege ich da falsch? Mein GCC 4.7 ist übrigens mit--enable-threads=posixkonfiguriert.Ich werde jetzt einfach kurz zu
boost::threadwechseln, aber mich würde doch gerne interessieren was hier bei mir falsch laufen könnte. Falls jemand was weiß wäre ich dankbar für jede Info
Gruß
PuerNoctis
-
Okay, ich konnte die Frage mittlerweile selbst beantworten. Cygwin hat zwar
pthreadsinne, jedoch keine Implementierung fürpthread_mutex_timedlock. Diestd::threadLibrary benötigt diese aber und checlt perautoconfdanach. Im Falle von Cygwin wird_GLIBCXX_HAS_GTHREADSalso deaktiviert - derzeit also kein Support in GCC 4.7 unter Cygwin.Schade. Case closed.
-
Die c++0x thread Klasse ist noch nicht in gcc drin.
Das siehst du hier: http://gcc.gnu.org/projects/cxx0x.html
-
Ich kenn die Seite sogar. Falls Du das "Thread-Local-Storage" meinst: TLS hat ja nichts direkt mit der Thread Library zu tun, obacht.
Ich ging egtl. immer von dieser Seite aus:
http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x
Dort unter Punkt 30 - 30.6.10 sind lediglich die
atomic_futuresnoch nicht implementiert, der Rest zumindest partiell oder soger vollständig.Aber was etz auch ist, ich setze mir jetzt einfach ein schnelles Ubuntu auf

-
OK
Also mingw hat momentan noch kein thread drin. Aber ich weiß nicht wie weit sie schon gcc portiert haben.