Freigeben über


ReleaseMutex-Funktion (synchapi.h)

Gibt den Besitz des angegebenen mutex-Objekts frei.

Syntax

BOOL ReleaseMutex(
  [in] HANDLE hMutex
);

Parameter

[in] hMutex

Ein Handle für das Mutex-Objekt. CreateMutex oder

Die OpenMutex-Funktion gibt dieses Handle zurück.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die ReleaseMutex-Funktion schlägt fehl, wenn der aufrufende Thread das Mutex-Objekt nicht besitzt.

Ein Thread erhält den Besitz eines Mutex, indem er ihn mit dem auf TRUE festgelegten bInitialOwner-Parameter erstellt oder sein Handle in einem Aufruf einer der Wartefunktionen angibt. Wenn der Thread das mutex-Objekt nicht mehr besitzen muss, ruft er die ReleaseMutex-Funktion auf, damit ein anderer Thread den Besitz erwerben kann.

Ein Thread kann einen Mutex angeben, den er bereits in einem Aufruf einer der Wartefunktionen besitzt, ohne dessen Ausführung zu blockieren. Dadurch wird verhindert, dass ein Thread selbst deadlockt, während er auf einen Mutex wartet, den er bereits besitzt. Um jedoch seinen Besitz freizugeben, muss der Thread ReleaseMutex für jedes Mal aufrufen, wenn er den Besitz erworben hat (entweder über CreateMutex oder eine Wartefunktion).

Beispiele

Ein Beispiel, das ReleaseMutex verwendet, finden Sie unter Verwenden von Mutex-Objekten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile synchapi.h (einschließlich Windows.h unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CreateMutex

Mutex-Objekte

Synchronisierungsfunktionen