Singleton in shared library
-
Hallo!
Eine einfache Frage, nachdem mich ausgiebiges Googlen völlig verwirrt hat:
Wenn (unter Linux/c++ mit gcc) ein Singleton (also im Wesentlichen eine static variable) in einer Shared Library definiert wird, greifen dann unterschiedliche Prozeese, die diese Shared Library linken, auf die gleiche Instanz des Singletons zu, oder sieht jeder Prozeß eine andere Instanz des Singletons??? Ich vermute ersteres, bin aber nicht sicher...
Und sehe ich das richtig, daß das unter Windows/VisualC++ anders ist, außer etwas wird der DLL ausdrücklich als "shared" declariert?Danke für Eure Hilfe!
Shaka
-
Ich bin mir jetzt auch nicht ganz sicher, aber eigentlich erhält jeder Prozess eine eigene Instanz des Speichers der Shared Library, da hat static afaik nix mit am Hut. Für richtigen geteilten Speicher solltest du dir "POSIX Shared Memory" ansehen.