<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Mutex]]></title><description><![CDATA[<p>Hallo,<br />
ich muss in meiner Anwendung für einen gewissen Zeitraum mehrere Instanzen unterbinden. Mit CreateMutex funktioniert das wunderbar. Jedoch schaffe ich es nach diesem Zeitraum nicht mehr den Mutex zu entfernen.</p>
<p>Mein bisheriger Code</p>
<pre><code class="language-cpp">// Beim Start der Anwendung wird auf jeweiligen 
// Mutex geprüft um dann die Anwendung gleich wieder 
// zu beenden (mehrere Instanzen unterbinden)
...
HANDLE hMutex;
...
...
hMutex = CreateMutex( NULL, TRUE, &quot;mutexname&quot; );
// In diesem Bereich sind keine zwei Instanzen möglich
ReleaseHandle( hMutex );
CloseHandle( hMutex );

// Nur lässt sich auch hier keine zweite Instanz 
// mehr starten obwohl es hier wieder möglich sein sollte.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/113415/mutex</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 15:03:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/113415.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Jun 2005 16:07:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mutex on Wed, 22 Jun 2005 16:08:32 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich muss in meiner Anwendung für einen gewissen Zeitraum mehrere Instanzen unterbinden. Mit CreateMutex funktioniert das wunderbar. Jedoch schaffe ich es nach diesem Zeitraum nicht mehr den Mutex zu entfernen.</p>
<p>Mein bisheriger Code</p>
<pre><code class="language-cpp">// Beim Start der Anwendung wird auf jeweiligen 
// Mutex geprüft um dann die Anwendung gleich wieder 
// zu beenden (mehrere Instanzen unterbinden)
...
HANDLE hMutex;
...
...
hMutex = CreateMutex( NULL, TRUE, &quot;mutexname&quot; );
// In diesem Bereich sind keine zwei Instanzen möglich
ReleaseHandle( hMutex );
CloseHandle( hMutex );

// Nur lässt sich auch hier keine zweite Instanz 
// mehr starten obwohl es hier wieder möglich sein sollte.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/814955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814955</guid><dc:creator><![CDATA[Herrmann]]></dc:creator><pubDate>Wed, 22 Jun 2005 16:08:32 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 22 Jun 2005 17:19:18 GMT]]></title><description><![CDATA[<p>closehandle löscht nur dieses eine handle. solange andere anwendungen ain handle auf den mutex haben ist dieser weiterhin am leben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/814986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/814986</guid><dc:creator><![CDATA[Mutant]]></dc:creator><pubDate>Wed, 22 Jun 2005 17:19:18 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 22 Jun 2005 19:02:40 GMT]]></title><description><![CDATA[<p>Du mußt im Besitz des Mutexes sein um ihn zu zerstören.</p>
<p>Ich gehe davon aus das die anderen Instanzen nur gebildet werden können, wenn sie den Mutex besitzen.<br />
Da du ein ReleaseHandle machst gibst du den Mutex frei, und sofort nimmt einer der darauf wartet den Mutex. Dieser besitzt<br />
ihn dann und solange er ihn nicht freigibt, kannst du dich nicht mit den anderen um den Mutex kloppen und ihn dann doch nicht bekommen. Versuch doch mal den Mutex zu zerstören ohne ein ReleaseHandle davor zu machen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/815046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/815046</guid><dc:creator><![CDATA[PAD]]></dc:creator><pubDate>Wed, 22 Jun 2005 19:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Wed, 22 Jun 2005 21:14:47 GMT]]></title><description><![CDATA[<p>PAD schrieb:</p>
<blockquote>
<p>Du mußt im Besitz des Mutexes sein um ihn zu zerstören.</p>
</blockquote>
<p>der mutex wird erst zerstört wenn keine referenzen mehr da sind d.h. es darf keinen prozess geben, der ein handle auf den mutex hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/815146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/815146</guid><dc:creator><![CDATA[falsch]]></dc:creator><pubDate>Wed, 22 Jun 2005 21:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to Mutex on Thu, 23 Jun 2005 07:41:13 GMT]]></title><description><![CDATA[<p>...bin ich blöd <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Bei der Überprüfung ob der jeweilige Mutex bereits existiert habe ich das Handle nicht wieder freigegeben. Dadurch funktionierte die spätere Freigabe nicht mehr. Problem gelöst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/815297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/815297</guid><dc:creator><![CDATA[Herrmann]]></dc:creator><pubDate>Thu, 23 Jun 2005 07:41:13 GMT</pubDate></item></channel></rss>