<?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[CriticalSections in Boost.Threads]]></title><description><![CDATA[<p>Ich suche sowas wie bei der WinAPI CriticalSection ( <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_critical_section_objects.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_critical_section_objects.asp</a> ) für Boost. Also eine funktion die verhindert, dass zu einem anderen Thread gesprungen wird.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130878/criticalsections-in-boost-threads</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 17:12:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130878.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Dec 2005 13:19:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:19:19 GMT]]></title><description><![CDATA[<p>Ich suche sowas wie bei der WinAPI CriticalSection ( <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_critical_section_objects.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_critical_section_objects.asp</a> ) für Boost. Also eine funktion die verhindert, dass zu einem anderen Thread gesprungen wird.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951443</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:19:19 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:23:19 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">namespace boost {
  class mutex;
  class try_mutex;
  class timed_mutex;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/951446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951446</guid><dc:creator><![CDATA[....................]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:23:19 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:25:48 GMT]]></title><description><![CDATA[<p>.................... schrieb:</p>
<blockquote>
<pre><code class="language-cpp">namespace boost {
  class mutex;
  class try_mutex;
  class timed_mutex;
}
</code></pre>
</blockquote>
<p>Aha. Und welche der drei Klassen?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951449</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:25:48 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:28:07 GMT]]></title><description><![CDATA[<p>lol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951452</guid><dc:creator><![CDATA[....................]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:28:07 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:36:47 GMT]]></title><description><![CDATA[<p>mutex entspricht in etwa der CriticalSection.<br />
Beim TimedMutex wird halt nach ner bestimmten Zeit abgebrochen, in den tryMutex wird blos reingegangen, wenn er in dem Moment frei ist. Denk ich jetzt mal, ohne die Doku gelesen zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951464</guid><dc:creator><![CDATA[kartoffelsack]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:36:47 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:46:46 GMT]]></title><description><![CDATA[<p>kartoffelsack schrieb:</p>
<blockquote>
<p>mutex entspricht in etwa der CriticalSection.<br />
Beim TimedMutex wird halt nach ner bestimmten Zeit abgebrochen, in den tryMutex wird blos reingegangen, wenn er in dem Moment frei ist. Denk ich jetzt mal, ohne die Doku gelesen zu haben.</p>
</blockquote>
<p>Ich hab jetzt mal die Doku gelesen und glaube das geht nicht mit mutex sondern mit lock.</p>
<pre><code class="language-cpp">boost::mutex m;
        boost::L lk(m);
</code></pre>
<p>Aber L kennt der nicht, und welche Header Datei ich brauche steht auf dieser &quot;§%§&quot;$% Seite auch nicht. Was ist das für eine scheiß Doku? Können die das nicht wie msdn mach? Übersicht der Funktion - Erklärung der Parameter - Erklärung des Rückgabewert - Sonstige Tipps - benötigte Headerdateien</p>
<p>Also ich blick da jetzt überhaupt nicht mehr durch. Was muss ich verdammt nochmal aufrufen/erstellen/initialisieren damit der Thread nicht unterbrochen wird??</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951470</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:47:47 GMT]]></title><description><![CDATA[<p>Wo steht das mit boost::L?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951471</guid><dc:creator><![CDATA[?????????]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 13:48:39 GMT]]></title><description><![CDATA[<p>????????? schrieb:</p>
<blockquote>
<p>Wo steht das mit boost::L?</p>
</blockquote>
<p><a href="http://boost.org/doc/html/threads/concepts.html#threads.concepts.ScopedLock" rel="nofollow">http://boost.org/doc/html/threads/concepts.html#threads.concepts.ScopedLock</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/951472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951472</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 13:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 14:38:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">boost::mutex mutex;

boost::mutex::scoped_lock muxexScopedLock(mutex);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/951487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951487</guid><dc:creator><![CDATA[L]]></dc:creator><pubDate>Wed, 28 Dec 2005 14:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 15:01:39 GMT]]></title><description><![CDATA[<p>L schrieb:</p>
<blockquote>
<pre><code class="language-cpp">boost::mutex mutex;

boost::mutex::scoped_lock muxexScopedLock(mutex);
</code></pre>
</blockquote>
<p>Ich hab daraus jetzt mal gefolgert das muxexScopedUnlock dann sowas wie LeaveCriticalSection ist.</p>
<p>Mein Code sieht jetzt so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/thread/thread.hpp&gt;
#include &lt;boost/thread/mutex.hpp&gt;

void foo()
{
    boost::mutex mutex;
	for(int i=0; i&lt;100; i++)
    {
        boost::mutex::scoped_lock muxexScopedLock(mutex);
		std::cout &lt;&lt; &quot;huhu: &quot; &lt;&lt; i &lt;&lt; std::endl;
        boost::mutex::scoped_lock muxexScopedUnlock(mutex);
    }
}

void bar()
{
    boost::mutex mutex;
	for(int i=0; i&lt;100; i++)
    {
        boost::mutex::scoped_lock muxexScopedLock(mutex);
		std::cout &lt;&lt; &quot;lala: &quot; &lt;&lt; i &lt;&lt; std::endl;
        boost::mutex::scoped_lock muxexScopedUnlock(mutex);
    }
}

int main()
{
	boost::thread t1(&amp;foo); // Thread-Objekt t1 erstellen und foo() starten.
	bar(); // t1 läuft gleichzeitig weiter, während bar() aufgerufen wird!
}
</code></pre>
<p>Mein Ziel ist es, dass sich die couts nicht überschneiden, also z.B. nicht so:<br />
lala: 91<br />
lala: 92<br />
lala: huhu: 92<br />
huhu: 93<br />
huhu: 94<br />
Aber das funktioniert mit dem mutex auch noch nicht. Funktioniert das jetzt so, oder warum ist die Ausgabe nicht richtig?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951504</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 15:12:26 GMT]]></title><description><![CDATA[<p>Du hast wohl den Sinn von scoped_lock überhaupt nicht verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951513</guid><dc:creator><![CDATA[L]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 15:16:39 GMT]]></title><description><![CDATA[<p>L schrieb:</p>
<blockquote>
<p>Du hast wohl den Sinn von scoped_lock überhaupt nicht verstanden.</p>
</blockquote>
<p>Ne hab ich nicht. Ich denke das wäre das gleiche wie eine CriticalSection?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951515</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 15:18:57 GMT]]></title><description><![CDATA[<p>scoped_lock muss in beiden fällen mit dem selben mutex-objekt initilaisiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951518</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:18:57 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 15:24:46 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>scoped_lock muss in beiden fällen mit dem selben mutex-objekt initilaisiert werden.</p>
</blockquote>
<p>Aso. Stimmt, wie bei der CriticalSection.<br />
Jetzt klappt's auch:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/thread/thread.hpp&gt;
#include &lt;boost/thread/mutex.hpp&gt;

boost::mutex mutex;

void foo()
{
	for(int i=0; i&lt;100; i++)
    {
        boost::mutex::scoped_lock muxexScopedLock(mutex);
		std::cout &lt;&lt; &quot;huhu: &quot; &lt;&lt; i &lt;&lt; std::endl;
        boost::mutex::scoped_lock muxexScopedUnlock(mutex);
    }
}

void bar()
{
	for(int i=0; i&lt;100; i++)
    {
        boost::mutex::scoped_lock muxexScopedLock(mutex);
		std::cout &lt;&lt; &quot;lala: &quot; &lt;&lt; i &lt;&lt; std::endl;
        boost::mutex::scoped_lock muxexScopedUnlock(mutex);
    }
}

int main()
{
	boost::thread t1(&amp;foo); // Thread-Objekt t1 erstellen und foo() starten.
	bar(); // t1 läuft gleichzeitig weiter, während bar() aufgerufen wird!
}
</code></pre>
<p>Vielen Dank!!</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951522</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 16:07:21 GMT]]></title><description><![CDATA[<p>Der Mutex ist die Critical Section. scoped_lock ist nur eine Hilfsklasse die im Konstruktor Lock aufruft und im Destruktor Unlock. Deswegen ist dein Code immer noch falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951543</guid><dc:creator><![CDATA[hmmmmmmmm]]></dc:creator><pubDate>Wed, 28 Dec 2005 16:07:21 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 16:09:07 GMT]]></title><description><![CDATA[<p>Also die Zeile</p>
<pre><code class="language-cpp">boost::mutex::scoped_lock muxexScopedUnlock(mutex);
</code></pre>
<p>Kannst du ganz weglassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951545</guid><dc:creator><![CDATA[hmmmmmmmmm]]></dc:creator><pubDate>Wed, 28 Dec 2005 16:09:07 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 17:21:28 GMT]]></title><description><![CDATA[<p>hmmmmmmmmm schrieb:</p>
<blockquote>
<p>Also die Zeile</p>
<pre><code class="language-cpp">boost::mutex::scoped_lock muxexScopedUnlock(mutex);
</code></pre>
<p>Kannst du ganz weglassen.</p>
</blockquote>
<p>Achso, okay verstehe.</p>
<p>Also müsste das dann so aussehen:</p>
<pre><code class="language-cpp">boost::mutex mutex;

void foo()
{
	for(int i=0; i&lt;100; i++)
    {
        boost::mutex::scoped_lock muxexScopedLock(mutex);
		std::cout &lt;&lt; &quot;huhu: &quot; &lt;&lt; i &lt;&lt; std::endl;
    }
}
</code></pre>
<p>Und wie mach ich das Ganze ohne die Hilfsklasse also direkt mit den Funtkionen von mutex?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951583</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 17:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to CriticalSections in Boost.Threads on Wed, 28 Dec 2005 18:39:29 GMT]]></title><description><![CDATA[<p>mit boost::mutex::do_lock() und boost::mutex::do_unlock()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951659</guid><dc:creator><![CDATA[..]]></dc:creator><pubDate>Wed, 28 Dec 2005 18:39:29 GMT</pubDate></item></channel></rss>