<?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[Hilfe bei Atomics benötigt]]></title><description><![CDATA[<p>Hallo liebe Forengemeinde,</p>
<p>Ich schreibe gerade einen Server mithilfe von boost.asio. Jeder Client soll eine write_line()-Funktion bekommen, die aus mehreren Threads aufgerufen werden kann. Nun ist es ja so, dass man logischerweise nicht mehrere write-Operationen gleichzeitig ausführen kann, also habe ich eine Queue für ausgehende Nachrichten pro Client. Da mein Server kein typischer &quot;Thread/Client&quot;-Server ist, ist diese Queue eine nicht-blockierende.</p>
<p>Nun muss ich dafür sorgen, dass diese Queue vollständig abgearbeitet wird, wenn einmal write_line aufgerufen wird. Hierzu habe ich einen atomic_bool pro Client, der mir angibt, ob gerade ein Thread schreibt. Wenn nun write_line aufgerufen wird, werfe ich die zu sendende Nachricht in die Queue. Falls der atomic_bool false ist, rufe ich eine Funktion auf, die so lange schreibt, bis die Queue leer ist. Somit ist sichergestellt, dass immer nur ein einziger Thread schreibt.</p>
<p>Mein Problem liegt jetzt genau beim atomaren prüfen und anschließenden setzen des atomic_bools. Folgendes wäre falsch, da nicht atomar:</p>
<pre><code class="language-cpp">if(!writing)
{
    writing = true;
    start_write();
}
</code></pre>
<p>Ich weiß auch, dass man das mit CAS machen kann, allerdings bietet der atomic_bool dafür zwei an: atomic_compare_exchange_strong und atomic_compare_exchange_weak. Außerdem haben beide noch einen Parameter für Memory-Order, wovon ich leider ebenfalls keine Ahnung habe.</p>
<p>Hier nochmal der gekürzte Code, falls etwas unverständlich war:</p>
<pre><code class="language-cpp">struct session
{
	void write_line(std::string line)
	{
		outgoing_messages_.push(line + &quot;\r\n&quot;);

		// wie korrekt?
		if(!writing_)
		{
			writing_ = true;
			do_write();
		}
	}

private:
	void do_write()
	{
		// schreibe bis queue leer
		writing_ = false;
	}

	std::atomic_bool writing_;
	tbb::concurrent_queue&lt;std::string&gt; outgoing_messages_;
};
</code></pre>
<p>Kann mir hier jemand helfen, und sagen, wie ich das richig mache? <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>
<p>Grüße,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304915/hilfe-bei-atomics-benötigt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 06:48:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304915.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Jun 2012 00:44:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 00:47:04 GMT]]></title><description><![CDATA[<p>Hallo liebe Forengemeinde,</p>
<p>Ich schreibe gerade einen Server mithilfe von boost.asio. Jeder Client soll eine write_line()-Funktion bekommen, die aus mehreren Threads aufgerufen werden kann. Nun ist es ja so, dass man logischerweise nicht mehrere write-Operationen gleichzeitig ausführen kann, also habe ich eine Queue für ausgehende Nachrichten pro Client. Da mein Server kein typischer &quot;Thread/Client&quot;-Server ist, ist diese Queue eine nicht-blockierende.</p>
<p>Nun muss ich dafür sorgen, dass diese Queue vollständig abgearbeitet wird, wenn einmal write_line aufgerufen wird. Hierzu habe ich einen atomic_bool pro Client, der mir angibt, ob gerade ein Thread schreibt. Wenn nun write_line aufgerufen wird, werfe ich die zu sendende Nachricht in die Queue. Falls der atomic_bool false ist, rufe ich eine Funktion auf, die so lange schreibt, bis die Queue leer ist. Somit ist sichergestellt, dass immer nur ein einziger Thread schreibt.</p>
<p>Mein Problem liegt jetzt genau beim atomaren prüfen und anschließenden setzen des atomic_bools. Folgendes wäre falsch, da nicht atomar:</p>
<pre><code class="language-cpp">if(!writing)
{
    writing = true;
    start_write();
}
</code></pre>
<p>Ich weiß auch, dass man das mit CAS machen kann, allerdings bietet der atomic_bool dafür zwei an: atomic_compare_exchange_strong und atomic_compare_exchange_weak. Außerdem haben beide noch einen Parameter für Memory-Order, wovon ich leider ebenfalls keine Ahnung habe.</p>
<p>Hier nochmal der gekürzte Code, falls etwas unverständlich war:</p>
<pre><code class="language-cpp">struct session
{
	void write_line(std::string line)
	{
		outgoing_messages_.push(line + &quot;\r\n&quot;);

		// wie korrekt?
		if(!writing_)
		{
			writing_ = true;
			do_write();
		}
	}

private:
	void do_write()
	{
		// schreibe bis queue leer
		writing_ = false;
	}

	std::atomic_bool writing_;
	tbb::concurrent_queue&lt;std::string&gt; outgoing_messages_;
};
</code></pre>
<p>Kann mir hier jemand helfen, und sagen, wie ich das richig mache? <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>
<p>Grüße,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224053</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 00:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 09:44:57 GMT]]></title><description><![CDATA[<p>Keine Ahnung, ich Weiss nicht mal wo dein Problem liegt. Das ist alles sehr unverstaendlich ... Du schreibst also einen Server und jeder Client soll ... haeh? ich dachte wir sind beim Server ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224097</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sun, 17 Jun 2012 09:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 12:46:27 GMT]]></title><description><![CDATA[<p>Ein Client hat auch auf dem Server ein Objekt, das ihn repäsentiert - dieses enthält unter anderem den Socket, sowie eben diese genannten Verwaltungsdaten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224162</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 12:46:27 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 17:34:12 GMT]]></title><description><![CDATA[<p>Dafuer gibts .compare_exchange_weak/strong</p>
<p>fuer mich sieht das aber eher nach etwas aus das wirklich locken will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224244</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 17:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 17:43:24 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Dafuer gibts .compare_exchange_weak/strong</p>
</blockquote>
<p>Ja, aber welches davon verwende ich denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224246</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 17:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 17:51:28 GMT]]></title><description><![CDATA[<p>Auf x86er Hardware ist es egal.</p>
<p>Prinzipiell ist der Unterschied der, dass die weak Variante oefter fehlschlagen kann als die strong Variante um auf bestimmter Hardware eine effizienter Implementierung zu erlauben.</p>
<p>Ich verwende immer strong aber ich habe keine Argumente warum das eine oder das andere besser ist.</p>
<p>PS:<br />
das sieht dennoch wie eine Situation fuer einen Mutex aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224251</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 17:51:28 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 17:54:23 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>das sieht dennoch wie eine Situation fuer einen Mutex aus.</p>
</blockquote>
<p>Wie kommst du darauf? Ich möchte nur überprüfen, ob ein Thread bereits schreibt, damit niemals zwei Threads gleichzeitig schreiben. Warum willst du da einen Mutex nehmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224254</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 17:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 18:01:16 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>das sieht dennoch wie eine Situation fuer einen Mutex aus.</p>
</blockquote>
<p>Ich möchte nur überprüfen, ob ein Thread bereits schreibt, damit niemals zwei Threads gleichzeitig schreiben.</p>
</blockquote>
<p>Wenn mich jemand fragt warum er einen Mutex verwenden soll, dann wuerde ich den Satz als Antwort gelten lassen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ein Mutex ist dafuer da, dass ein Codeblock nicht von 2 Threads gleichzeitig ausgefuehrt werden kann. Du vergewaltigst hier atomics.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224257</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 18:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 18:11:07 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28420">@Kellerautomat</a></p>
<p>Lass die Finger von Threads, du tust dir damit nur heftig weh.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224263</guid><dc:creator><![CDATA[box]]></dc:creator><pubDate>Sun, 17 Jun 2012 18:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:04:13 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Ein Mutex ist dafuer da, dass ein Codeblock nicht von 2 Threads gleichzeitig ausgefuehrt werden kann.</p>
</blockquote>
<p>Das mag schon sein, aber ich _kann_ und _will_ nicht warten. Mein Server verwendet einstellbar viele Threads, was bedeutet, dass ein blockierter Thread einen nicht mehr antwortenden Server zur Folge haben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224292</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:29:13 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Ein Mutex ist dafuer da, dass ein Codeblock nicht von 2 Threads gleichzeitig ausgefuehrt werden kann.</p>
</blockquote>
<p>Das mag schon sein, aber ich _kann_ und _will_ nicht warten.</p>
</blockquote>
<p>ok.</p>
<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Mein Server verwendet einstellbar viele Threads, was bedeutet, dass ein blockierter Thread einen nicht mehr antwortenden Server zur Folge haben kann.</p>
</blockquote>
<p>Ich verstehe nicht, wie das eine das andere implizieren soll. Kannst du das näher erläutern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224299</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:29:13 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:31:29 GMT]]></title><description><![CDATA[<p>Okay, kleines Beispiel (es handelt sich um einen Chatserver, ähnlich IRC): User X befindet sich in Channel Y. Nun verlässt User A den Channel, User B joint, User C schreibt eine Nachricht in den Channel und User D schreibt X im Query an. Wenn eine der Operationen unerwartet lange blockiert, sind alle anderen Threads auch blockiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224300</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:31:29 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:33:33 GMT]]></title><description><![CDATA[<p>Wenn nur ein Thread schreiben kann, dann musst du blockieren. Denkst du mit atomics gehts schneller?</p>
<p>Du koenntest einfach feiner locken. zB private Messages blockieren nicht den Main Channel und so.</p>
<p>Aber atomics haben hier nichts zusuchen und zwar rein garnichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224301</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:33:33 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:37:03 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Wenn eine der Operationen unerwartet lange blockiert, sind alle anderen Threads auch blockiert.</p>
</blockquote>
<p>Welche Operation?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224304</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:37:03 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:38:25 GMT]]></title><description><![CDATA[<p>Schreiben am Socket des Users X.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224305</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:38:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:41:58 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Schreiben am Socket des Users X.</p>
</blockquote>
<p>Dann brauchst du einen Mutex der diese eine Operation lockt.<br />
Fertig.<br />
User Y ist davon nicht betroffen.</p>
<p>PS:<br />
du kannst gerne mal alles genauer erklaeren. Dann koennen wir dir sicher besser helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224306</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:41:58 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:51:33 GMT]]></title><description><![CDATA[<p>Hab mal ein kleines ASCII-Art geschnitzt.</p>
<pre><code>t1                 t2                 t3                t4
+------------------+------------------+-----------------+-------------------+
| liest Quit von A | liest Join von B | liest Msg von C | liest Query von D |
+------------------+------------------+-----------------+-------------------+
         |                |                        |                |
         |                |                        |                | 
         |                | warten          warten |                |
         |                +-------&gt; +---+ &lt;--------+                |
         +------------------------&gt; | X | &lt;-------------------------+
         informiert X, dauert lange +---+             warten
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2224311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224311</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:51:33 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:54:10 GMT]]></title><description><![CDATA[<p>Wie stellst du dir das mit atomics vor dass dort kein Warten mehr stattfindet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224312</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:54:10 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 19:55:49 GMT]]></title><description><![CDATA[<p>Ich werfe die anderen 3 Nachrichten in die Queue. Der Thread, der gerade an X sendet, bearbeitet dann diese weiteren 3 Nachrichten danach, während die anderen 3 Threads bereits wieder etwas anderes machen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224314</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 19:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:00:52 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Ich werfe die anderen 3 Nachrichten in die Queue. Der Thread, der gerade an X sendet, bearbeitet dann diese weiteren 3 Nachrichten danach, während die anderen 3 Threads bereits wieder etwas anderes machen können.</p>
</blockquote>
<p>Aha. Also benötigt die Socketoperation gar keinen Mutex, nur der Zugriff auf die Queue synchronisiert werden. Dass kann nat. curch eine lockfreie Implementation geschehen, aber auch durch mutex. Jedenfalls sind Operationen auf einer Queue grundsätzlich nicht blockierend.<br />
Warum meinst du, die eigentliche Socket-Operation mit einem Mutex schützen zu müssen, darauf aber bei atomics verzichten zu können?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224315</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:00:52 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:02:44 GMT]]></title><description><![CDATA[<p>Ich habe da doch nirgens Mutexe. Die wollte SoM mir einreden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224317</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:02:44 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:05:26 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Ich habe da doch nirgens Mutexe. Die wollte SoM mir einreden.</p>
</blockquote>
<p>OK.<br />
Wozu brauchst du hier atomics? Was erreichst du mit der Variable &quot;writing&quot;?</p>
<p>PS:<br />
deshalb auch meine Bitte das ganze ordentlich aufzuzeichnen und nicht nur 3 Satz Posting zu machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224319</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:05:26 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:07:40 GMT]]></title><description><![CDATA[<p>Man könnte sagen, der Wert der Variable besagt, ob gerade ein Thread den Socket besitzt. Sprich:<br />
false -&gt; Ich bin derjenige, der selbst schreiben muss.<br />
true -&gt; Ein anderer schreibt gerade, ich kann das schreiben meiner Nachricht einfach an ihn delegieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224321</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:07:40 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:08:41 GMT]]></title><description><![CDATA[<p>OK, das musst du mehr erklaeren. Du sharest sockets zwischen mehreren threads?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224322</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:10:28 GMT]]></title><description><![CDATA[<p>Nein, eben nicht. Genau das verhindere ich doch mit der Variable.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224323</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:10:28 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Atomics benötigt on Sun, 17 Jun 2012 20:12:06 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Nein, eben nicht. Genau das verhindere ich doch mit der Variable.</p>
</blockquote>
<p>Du musst mehr erklaeren. Das was ich bisjetzt verstanden habe klingt furchtbar konfus. Bitte skizziere dein Design hier auf.</p>
<p>Denn entweder verstehe ich dich nicht richtig oder mit deinem Design hats was gravierendes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224324</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 17 Jun 2012 20:12:06 GMT</pubDate></item></channel></rss>