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::thread
Funktionalitäten rumprobieren wollte musste ich feststellen, dass_GLIBCXX_HAS_GTHREADS
nicht 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
gthreads
auf denpthreads
aufbauen und die wiederum mittlerweile Bestandteil von Cygwin sind... liege ich da falsch? Mein GCC 4.7 ist übrigens mit--enable-threads=posix
konfiguriert.Ich werde jetzt einfach kurz zu
boost::thread
wechseln, 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 InfoGruß
PuerNoctis
-
Okay, ich konnte die Frage mittlerweile selbst beantworten. Cygwin hat zwar
pthreads
inne, jedoch keine Implementierung fürpthread_mutex_timedlock
. Diestd::thread
Library benötigt diese aber und checlt perautoconf
danach. Im Falle von Cygwin wird_GLIBCXX_HAS_GTHREADS
also 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_futures
noch 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.