Seite 1 von 1

CreateMutex() vs. CreateMutex_

Verfasst: 14.06.2024 10:28
von tft
Hallo,

Mein Projekt wirft für mich viele spannende Fragen auf.

Wirkt CreateMutex() nur innerhalb des laufenden Prozesses und CreateMutex_() global?
Die Tatsache das es bei CreateMutex_() zu Benennungskonflikten kommen kann. Lässt bei
mir diesen Schluss zu. Was ich ja auch brauche.

Hat da jemand infos zu?

Gruss TFT

Re: CreateMutex() vs. CreateMutex_

Verfasst: 14.06.2024 10:34
von mk-soft
Bei Windows wird für CreateMutex intern CriticalSection genommen (was auch schneller ist)
Somit nur für den eigenen Prozess.

MSDN: https://learn.microsoft.com/en-us/windo ... on-objects

Re: CreateMutex() vs. CreateMutex_

Verfasst: 14.06.2024 10:36
von NicTheQuick
CreateMutex_() ist ein direkter Windows-API-Call und wird hier erklärt: https://learn.microsoft.com/de-de/windo ... ex-objects
Du musst ihm auch keinen Namen geben. Der Name ist nur sinnvoll, wenn du den Mutex über Prozesse hinweg nutzen möchtest.

CreateMutex() ist ein Purebasic-Command und wird je nach Betriebssystem auf andere OS-API-Calls gemappt (siehe Antwort von mk-soft). So ein Mutex ist aber nie global, sondern gilt nur für deinen aktuellen Prozess.

Wenn dir andere Betriebssysteme egal sind und du nur für Windows entwickelst, kannst du also auch CreateMutex_() nutzen.

Re: CreateMutex() vs. CreateMutex_

Verfasst: 14.06.2024 15:09
von tft
danke für die schnelle Antwort.