Einzelnen Beitrag anzeigen

Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#1

Shared Memory & Semaphores. Was für eine ID nehme ich?

  Alt 22. Apr 2007, 09:43
Hi @ll,

ich möchte zwei Prozesse miteinander kommunizieren lassen.
Im Endeffekt solll das ganze unter Linux mit php laufen, aber für das Problem selbst tut es eigentlich nichts zur Sache:

Ich kann mit sem_acquire und sem_release das gleiche bewirken wie in Windows mit der CriticalSection. Dafür muss ich erst mit sem_get(integer) mit eine semid holen. Jeder andere Prozess, der jetzt ebenfalls sem_get(integer) mit dem gleichen integer aufruft erhält die gleiche semid und so haben beide Prozesse die gleiche Semaphore, mit der sie sich schön gegenseitig sperren können.

Aber was für eine Zahl nehme ich als Parameter für sem_get? Wenn irgend ein anderer Prozess zufällig diese id schon hat, dann dürfte ich schliesslich lustige Effekte bekommen, da ein dritter unbekanter Prozess noch in meiner semaphore irgendwas macht.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat