#define _REENTRANT bei pthreads notwendig?



  • Hallo,

    Ich probiere gerade herum mit POSIX threads und habe einiges an
    Information aus Dave Marshalls "Programming C" verwendet.
    http://gd.tuwien.ac.at/languages/c/programming-dmarshall/node32.html#SECTION003200000000000000000
    Nun ist mir aufgefallen, dass er auch bei Pthread Beispielen immer ein

    #define _REENTRANT
    

    ...an den Anfang der Listings setzt.

    Ist das notwendig? Ich mein es ist klar, dass der Kernel reentrant Funktionen unterstuetzen sollte und afaik konfiguriert man das im Kernel auch, aber meine pthread Programme laufen auch ohne dieses _REENTRANT im Code.

    Was ist nun an dem define dran?
    Muss ich es setzen oder bewirkt es gar nix?



  • Einige systeme geben anscheinend erst damit die threadsafe funtkionen (zb strtok_r) frei. Andere Bibliotheken (boost?!) um zu schaun, ob sie die einfache version oder die threadsafe version nehmen sollen.
    Alles pauschal wohl nicht zu beantworten... in meinen bisherigen pthread-tutorials kam es noch nie vor 😉



  • Ole ole... 😉

    lagalopex schrieb:

    Einige systeme geben anscheinend erst damit die threadsafe funtkionen (zb strtok_r) frei. Andere Bibliotheken (boost?!) um zu schaun, ob sie die einfache version oder die threadsafe version nehmen sollen.
    Alles pauschal wohl nicht zu beantworten... in meinen bisherigen pthread-tutorials kam es noch nie vor 😉

    "Einige systeme geben anscheinend" - ok, werd mir mal'n Solaris oder'n BSD auf der VM installieren und sehen ob ich dort fuer POSIX Libs nen solchen define brauche, dachte vllt weiss es ja jemand und koennte es gleich direkt beantworten.

    Boost??? - Dachte immer Boost sei C++, ah, ok is hier "allgemein Linux/Unix Bereich", mom lern ich hier C.

    "in meinen bisherigen pthread-tutorials" - dann empfehle ich Dir mal zum Einstieg Dave Marshall, im Ernst! Is nur leider vieles eher am Beispiel von SUN / Solaris, bzw noch System V! Hatte vorher auch schon einige Tutorials durchgelesen, am schlimmsten fand ich yolinux, leider..
    http://docs.linux.cz/programming/c/c_marshall/CE.html



  • Beim gcc reicht es mit -pthread zu kompilieren. Dann bekommst du schon das richtige.


Anmelden zum Antworten