2011-01-19 3 views
1

Comment verrouiller le mutex (section critique) pendant un certain temps? Y a-t-il une fonction API pour ça? Autant que je vois, il n'y a rien de tel dans les fenêtres. Si oui, est-il possible de l'implémenter manuellement?WinAPI minuté serrure mutex

Merci.

+2

Pourquoi voudriez-vous faire cela? Vous devriez toujours vous efforcer de verrouiller les mutex le moins longtemps possible (sinon vous bloquez les autres threads inutilement). Au-delà de cela, le déverrouillage d'un mutex avant que vous en ayez fini avec lui conduira à une horrible corruption de données. –

+0

Je parle de timeout de verrouillage de mutex. En fait, je suis intéressé par l'analogique de pthread_mutex_timedlock pour Windows. – ledokol

+0

Si vous bloquez un mutex qui n'est jamais disponible et qui expire, pourquoi n'utilisez-vous pas Sleep()? – Zak

Répondre

2

L'équivalent de pthread_mutex_timedlock() dans Win32 utilise un Mutex et en spécifiant un délai d'attente (autres que INFINITE) dans l'un des wait-functions.

+0

Merci, on dirait que c'est la solution que je cherche. Laissez-moi vérifier et revenir. – ledokol

+0

Je crois que cela décrit un appel Sleep() trop complexe. – Zak