Semaphoren werden benutzt, um geteilten Zugriff auf Ressourcen (z.B.
dbf-
Wenn semname noch nicht existiert, wird sie angelegt. Die Überprüfung
und das Anlegen werden in einem echt atomaren Schritt durchgeführt
(mittels Hardlinks, also auch unter NFS lauffähig). So ist sichergestellt,
dass zwischen Überprüfen und Anlegen kein anderer Prozess die Semaphore
anlegen kann.
Falls semname schon existiert, ein anderer Prozess also Zugriff auf die
Ressource beansprucht, wird gewartet, bis die Semaphore wieder gelöscht
wird, höchstens aber timeout Sekunden. Dieses Timeout verhindert, dass
die Prozesse unendlich lange aufeinander warten, wenn ein anderer Prozess
stirbt, während er die Ressource benutzt (Lifelock des eigenen Prozesses).
Nach dem Aufruf ist die Semaphore angelegt, die Ressource also beansprucht.
Das Rückgabeergebnis ist in der Regel False, es sei denn, das
Timeout wurde erreicht, dann ist es True.
Diese Funktion arbeitet nur korrekt, wenn Schreibrechte auf das aktuelle
Verzeichnis existieren. Unter MS-
toposoft 28.10.2024