Thread Inline::ASM (14 answers)
Opened by tonewheel at 2012-05-12 13:26

topeg
 2012-05-13 09:42
#158324 #158324
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
2012-05-12T19:18:35 tonewheel
Ok. Ist das abhaengig von den Compiler-Optionen beim Compilieren des Perl-Interpreters?

Genau. Wenn perl Threadsafe kompiliert wurde dann funktioniert dein Code. Andernfalls gibt es es eine globale Variable in der Das Interpreter-"Objekt" sich befindet. Dann muss dieses nicht an alle Funktionen übergeben werden. Das macht perl schneller, ist aber nicht threadsafe. Praktisch alle perl-Interpreter sind so kompiliert. Das bedeutet aber nicht das du keine Thread im C-Code nutzen kannst, das bedeutet vielmehr das nur ein Thread mit dem Interpreter interagieren darf.

2012-05-12T19:18:35 tonewheel
Interessant, das die Lib zur Laufzeit erzeugt wird. Nur woher weiss Perl beim naechsten Start, wo diese zu finden bzw. wie diese zu starten ist?

Eine ausführliche Beschreibung wie das funktioniert findest du in der Moduldokumentation.

Kurz Zusammengefasst:
Wenn kein Basispfad festgelegt wurde, wird einer der im Modul voreingestellten genutzt. Dort wird zum Dateinamen ein Ordner Angelegt und darin ein Ordner dessen Name ein MD5-Wert des C-Codes ist. Darin befindet sich alles was zum Compilieren und nutzen des Codes gebraucht wird. Ändert sich der Dateiname oder der C-Code nicht, so wird das schon kompilierte gefunden und genutzt.

View full thread Inline::ASM