<?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[Problem mit libboost Threads]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe folgenden Code in einer Klasse:</p>
<pre><code>void cStreamManager::OpenStream()
{
    mStream-&gt;OpenStream();
    boost::thread StreamThread(boost::bind(&amp;cStream::Play, mStream));

    StreamThread.join();

    return;
}

void cStreamManager::CloseStream()
{
    mStream-&gt;CloseStream();

    return;
}
</code></pre>
<p>Die Funktion OpenStream() wartet durch StreamThread.join(); auf das Ende von<br />
cStream::Play(). Der Mainthread wurde also angehalten. Von ihm aus kann dann<br />
aber für das Objekt der Klasse cStreamManager keine weitere Methode, z. B.<br />
CloseStream(), mehr aufgerufen werden. Diese Methode würde cStream::Play()<br />
beenden. Das wird aber nie erreicht.<br />
Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242415/problem-mit-libboost-threads</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 23:03:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242415.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Jun 2009 13:48:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 13:59:38 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe folgenden Code in einer Klasse:</p>
<pre><code>void cStreamManager::OpenStream()
{
    mStream-&gt;OpenStream();
    boost::thread StreamThread(boost::bind(&amp;cStream::Play, mStream));

    StreamThread.join();

    return;
}

void cStreamManager::CloseStream()
{
    mStream-&gt;CloseStream();

    return;
}
</code></pre>
<p>Die Funktion OpenStream() wartet durch StreamThread.join(); auf das Ende von<br />
cStream::Play(). Der Mainthread wurde also angehalten. Von ihm aus kann dann<br />
aber für das Objekt der Klasse cStreamManager keine weitere Methode, z. B.<br />
CloseStream(), mehr aufgerufen werden. Diese Methode würde cStream::Play()<br />
beenden. Das wird aber nie erreicht.<br />
Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720423</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 03 Jun 2009 13:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 13:57:57 GMT]]></title><description><![CDATA[<p>mase schrieb:</p>
<blockquote>
<p>Was mach ich falsch?</p>
</blockquote>
<p>Vermutlich das join(). Welchen Sinn macht es, einen neuen Thread zu starten und den alten sofort anzuhalten, bis der neue fertig ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720436</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 03 Jun 2009 13:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 14:04:06 GMT]]></title><description><![CDATA[<p>Der Mainthread soll sich ja nicht beenden.<br />
CStream::Play() spielt Musik ab. Diese soll aber nicht unterbrochen werden.<br />
In cStreamManager sollen Steuerfunktionen für cStream aufgerufen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720445</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 03 Jun 2009 14:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 14:06:50 GMT]]></title><description><![CDATA[<p>mase schrieb:</p>
<blockquote>
<p>Der Mainthread soll sich ja nicht beenden.</p>
</blockquote>
<p>Er wird ja auch nicht <em>beendet</em>. Die Ausführung wird nur <em>unterbrochen</em> bis der andere Thread fertig ist. AFAIK ist das doch der Sinn von join oder nicht? Das heißt du kommst aus der OpenStream()-Methode erst wieder raus wenn Play() beendet wurde und der erzeugte Thread mit der Ausführung fertig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720448</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 03 Jun 2009 14:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 14:14:18 GMT]]></title><description><![CDATA[<p>Dann muss ich also durch Schleifen usw. dafür sorgen, dass der Mainthread<br />
nicht beendet wird, anstatt join zu verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720452</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 03 Jun 2009 14:14:18 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 14:40:00 GMT]]></title><description><![CDATA[<p>Du benutzt doch den Thread, weil er nebenher laufen soll?! Jetzt ist die Frage: was soll denn der Thread nicht blockieren? Du mußt doch ne andere Aufgabe haben, weshalb du den Thread laufen lassen willst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720474</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 03 Jun 2009 14:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 14:52:24 GMT]]></title><description><![CDATA[<p>Hast ja recht. Momentan bin ich noch am Kern meines Programms. Die ganzen<br />
Verwaltungsoptionen werden jetzt nach und nach implementiert. Es finden<br />
zur Zeit nur ein paar Testaufrufe statt. Natürlich hat der Mainthread nachher<br />
noch anderes zu tun. Sonst bräuchte ich das ganze Multithreading ja nicht.<br />
Ich hab jetzt sleeps in den Mainthread eingebaut.<br />
Ich teste immer zuerst eine neue Funktion durch Aufrufe im Mainthread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720482</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 03 Jun 2009 14:52:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Wed, 03 Jun 2009 15:07:37 GMT]]></title><description><![CDATA[<p>Noch was anderes. Ist folgendes möglich?<br />
Ich übergebe der Threadfunktion, die eine Methode einer anderen Klasse ist,<br />
eine Referenz auf den Mutex.<br />
Bevor ich den Thread erstelle, sperre ich den Muxex mit mutex.lock().<br />
Die Threadfunktion beginnt mit mutex.lock() gefolgt von mutex.unlock(), dann<br />
die weiteren Anweisungen. Sie soll also erst einmal warten.<br />
Die Threadfunktion soll jetzt erst die weiteren Anweisungen ausführen, wenn<br />
im Mainthread der Mutex mittels mutex.unlock() freigegeben wird.<br />
Der Sinn ist, es soll der Thread erstellt werden, er soll aber trotzdem<br />
warten, bis noch ein paar set-Funktionen ausgeführt wurden, um ihn zu<br />
initialisieren.<br />
Es soll so auch möglich sein, den Thread an verschiedenen Stellen zu<br />
pausieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720491</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 03 Jun 2009 15:07:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Thu, 04 Jun 2009 20:13:08 GMT]]></title><description><![CDATA[<p>Hab's grad getestet. Funktioniert nicht. Die Threadfunktion läuft munter<br />
weiter, obwohl vor dem Erstellen des Threads der Mutex gesperrt wurde.<br />
Der Mutex wird im Mainthread erstellt und sofort gesperrt. Dem neu erstellten<br />
Thread übergebe ich den Mutex als Referenz. Der Thread beginnt mit einem<br />
lock(), gefolg von einem unlock(). Er sollte doch erst weiterlaufen, wenn<br />
der Mutex im Mainthread freigegeben wird. Ich will eigentlich nur den Thread<br />
schlafenlegen und wieder aufwecken können.<br />
Was kann das sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721392</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 04 Jun 2009 20:13:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Thu, 04 Jun 2009 21:12:57 GMT]]></title><description><![CDATA[<p>mase schrieb:</p>
<blockquote>
<p>Noch was anderes. Ist folgendes möglich?<br />
Ich übergebe der Threadfunktion, die eine Methode einer anderen Klasse ist,<br />
eine Referenz auf den Mutex.</p>
</blockquote>
<p>Ein Mutex steht immer in Beziehung zu einem Datum. Folglich sollte das Mutex ein Member derselben Klasse sein, die auch das zu schützende Datum enthält. Eine Übergabe des Mutex ist unüblich.</p>
<p>mase schrieb:</p>
<blockquote>
<p>Bevor ich den Thread erstelle, sperre ich den Muxex mit mutex.lock().<br />
Die Threadfunktion beginnt mit mutex.lock() gefolgt von mutex.unlock(), dann<br />
die weiteren Anweisungen. Sie soll also erst einmal warten.<br />
Die Threadfunktion soll jetzt erst die weiteren Anweisungen ausführen, wenn<br />
im Mainthread der Mutex mittels mutex.unlock() freigegeben wird.<br />
Der Sinn ist, es soll der Thread erstellt werden, er soll aber trotzdem<br />
warten, bis noch ein paar set-Funktionen ausgeführt wurden, um ihn zu<br />
initialisieren.<br />
Es soll so auch möglich sein, den Thread an verschiedenen Stellen zu<br />
pausieren.</p>
</blockquote>
<p>.. dafür ein Mutex mit gegenseitigem Lock zu nutzen ist ebenso ungewöhnlich.</p>
<p>Dafür nimmt man i.A. die Condition. Bei Dir vielleicht in Kombination mit einem einfachen Flag (bool), welches angibt, ob der Thread (Play) angehalten wird oder nicht (Member m_pause - s.Code unten).</p>
<p>Zunächst einmal würde ich den Thread zum Member der Klasse machen, auf deren Daten der Thread zugreift. Ich unterstelle mal, dass im wesentlichen Informationen des 'cStream' benötigt werden. Also sollte der Thread Member von dieser Klasse sein; entweder direkt oder als Pointer.</p>
<p>Das Play und Pause(mit der Möglichkeit zum Fortfahren) kann dann über eine einfache bool-Variable in Kombination mit der condition erreicht werden. Als Code-Skizze sähe das so aus:</p>
<pre><code class="language-cpp">class cStream
{
public:
    typedef boost::mutex::scoped_lock lock_type;

    cStream() 
        : m_running( true )
        , m_pause( true )
        , m_condition()
        , m_mtx()
        , m_thrd( boost::bind( &amp;cStream::Run, this ) ) // Bem.: warning wg. Zugriff auf 'this' ist ok, solange m_thrd letztes Element in cStream ist!
    {}
    ~cStream()
    {
        m_running = false; // beendet Schleife in Run-Methode
        Play(); // sicherstellen, dass der Thread nicht in der Pause fest hängt
        m_thrd.join(); // warte, bis Thread zu Ende ist
    }

    void Play()
    {
        lock_type lock( m_mtx );
        m_pause = false;
        m_condition.notify_one(); // weckt ggf. die wait-Methode
    }
    void Pause()
    {
        lock_type lock( m_mtx );
        m_pause = true;
    }

private:
    void Run()  // hier rennt der Thread; Methoden-Ende ist auch Thread-Ende
    {
        for( ; m_running; )
        {
            check4pause();  // blockiert wenn 'm_pause == true' (s.u.)
            // .. Stream abspielen
        }
    }
    void check4pause()
    {
        lock_type lock( m_mtx );
        while( m_pause )
        {
            m_condition.wait( lock ); // blockiert bis 'notify'
        }
    }

    // --   Member
    bool m_running;
    bool m_pause;
    boost::condition_variable m_condition;
    boost::mutex m_mtx;
    boost::thread m_thrd;
};
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721434</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 04 Jun 2009 21:12:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Thu, 04 Jun 2009 21:30:40 GMT]]></title><description><![CDATA[<p>Die Sache ist so:<br />
Die Klasse cStream bekommt vom Mainthread einen Pointer auf ein Objekt<br />
von cPlaylist. Den Mutex erzeuge ich im Mainthread, und übergebe ihn<br />
an cPlaylist und cStream. cStream::Play() läuft nun als Thread in einer<br />
Schleife. Dabei greift er sich jedesmal den zu spielenden Titel von<br />
cPlaylist ab. Im cPlaylist-Objekt kann sich aber während der Laufzeit<br />
die Playliste ändern. Um ein gleichzeitiges Lesen und Schreiben zu verhindern,<br />
wollte ich dazu den gleichen Mutex verwenden.<br />
Ich könnte mir zum Pausieren einen weiteren Mutex als Member von cStream<br />
anlegen, wie du gesagt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721444</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 04 Jun 2009 21:30:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Thu, 04 Jun 2009 21:40:52 GMT]]></title><description><![CDATA[<p>.. Du kannst auch bei dem von mir beschriebenen Vorschlag den gleichen Mutex nutzen.<br />
Wie schon gesagt besteht zwischen einem Mutex und den zu schützenden Daten eine 1:1-Beziehung. In meiner Skizze wird nur 'bool m_pause' vom Mutex geschützt; es wäre aber kein Problem eine Playlist mit aufzunehmen.<br />
Man muss nur beachten, dass der Mutex innerhalb des cStream nicht zu lange gelockt bleibt. Das erreicht man z.B. in dem man in der Run-Methode unter Schutz des Mutex (gelockt) eine lokale Kopie eines Teils der Playlist anlegt und anschließend diesen ohne lock abspielt.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721447</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 04 Jun 2009 21:40:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Thu, 04 Jun 2009 22:03:51 GMT]]></title><description><![CDATA[<p>Du meinst, dass der Stream in der Lockzeit nicht abreisst?<br />
Ich habe mir überlegt, das über einen vector von buffern zu machen (FIFO).<br />
Aber ist das in meinem Fall ok, den Mutex im Mainthread zu erzeugen und<br />
an beide Klassen zu übergeben?<br />
Mit dem separaten Mutex erreiche ich aber auch, dass ich während der Pause-<br />
phase die Playlist modifizieren kann. Das wäre mit einem gemeinsamen wohl<br />
nicht möglich.<br />
Aber deine Methode funktioniert tatsächlich.<br />
In meiner Boost-Doku steht gar nix von mutex::scoped_lock und notify_one().<br />
Danke dir!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721454</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 04 Jun 2009 22:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Thu, 04 Jun 2009 22:27:51 GMT]]></title><description><![CDATA[<p>mase schrieb:</p>
<blockquote>
<p>Du meinst, dass der Stream in der Lockzeit nicht abreisst?</p>
</blockquote>
<p>ich dachte eher daran, dass man von außen Pause() aufruft und der cStream mehr oder weniger unmittelbar reagiert, ohne erst das ganze aktuelle Lied abzuspielen - aus was für Einheiten besteht denn so eine 'PlayList' und wie lange dauert das Abspielen so einer Einheit?</p>
<p>mase schrieb:</p>
<blockquote>
<p>Ich habe mir überlegt, das über einen vector von buffern zu machen (FIFO).<br />
Aber ist das in meinem Fall ok, den Mutex im Mainthread zu erzeugen und<br />
an beide Klassen zu übergeben?</p>
</blockquote>
<p>Kann ich so pauschal nicht sagen. Ein Mutex ist nach meinem Verständnis dafür nicht gemacht ...</p>
<p>mase schrieb:</p>
<blockquote>
<p>Mit dem separaten Mutex erreiche ich aber auch, dass ich während der Pause-<br />
phase die Playlist modifizieren kann. Das wäre mit einem gemeinsamen wohl<br />
nicht möglich.</p>
</blockquote>
<p>Sicher - warum sollte das nicht möglich sein. Lasse Dich von dem Lock in 'check4pause' nicht beirren. Innerhalb von condition::wait wird der lock wieder geöffnet, sonst würde der Play ja auch nicht funktionieren.</p>
<p>mase schrieb:</p>
<blockquote>
<p>Aber deine Methode funktioniert tatsächlich.<br />
In meiner Boost-Doku steht gar nix von mutex::scoped_lock und notify_one().</p>
</blockquote>
<p>guckst Du hier: <a href="http://www.boost.org/doc/libs/1_39_0/doc/html/thread/synchronization.html#thread.synchronization.mutex_types" rel="nofollow">mutex::scoped_lock</a> &amp; <a href="http://www.boost.org/doc/libs/1_39_0/doc/html/thread/synchronization.html#thread.synchronization.condvar_ref" rel="nofollow">notify_one()</a></p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721460</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 04 Jun 2009 22:27:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Fri, 05 Jun 2009 09:58:59 GMT]]></title><description><![CDATA[<p>Pause regiert direkt. Der Pausencheck wird bei jeden Füllen des Buffers<br />
ausgeführt. Und das sind 4kB Blöcke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721641</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 05 Jun 2009 09:58:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Fri, 05 Jun 2009 18:22:23 GMT]]></title><description><![CDATA[<p>Jetzt habe ich ein neues Problem:<br />
Ich hab die Erzeugung des neuen Threads aus der Mainfunktion rausgenommen und<br />
in die Klasse cStream eingebaut.<br />
Das sieht jetzt so aus:</p>
<p>Hauptprogramm</p>
<pre><code>int main()
{
    cStream *Stream = new cStream(true);

    Stream-&gt;OpenStream();
    Stream-&gt;StartStream();

    boost::this_thread::sleep(boost::posix_time::seconds(5));
    Stream-&gt;PauseStream(true);

    delete Stream;
}
</code></pre>
<p>Klasse cStream</p>
<pre><code>void cStream::PauseStream(bool _Pause)
{
    if (mPause == _Pause)
    {
        return;
    }

    if (!_Pause)
    {
        boost::mutex::scoped_lock Pause(mPauseMutex);

        mPause = false;
        mPauseCondition.notify_one();

        return;
    }

    boost::mutex::scoped_lock Pause(mPauseMutex);

    mPause = true;

    return;
}

int cStream::OpenStream()
{
   //Hier wird die Serververbindung hergestellt
}

void cStream::StartStream()
{
    boost::thread StreamThread(boost::bind(&amp;cStream::Send, this));
}

void cStream::CheckPause()
{
    boost::mutex::scoped_lock Pause(mPauseMutex);

    while (mPause)
    {
        mPauseCondition.wait(Pause);
    }
}

void cStream::Send()
{
        while (!mStop)
    {
        //pause stream?
        CheckPause();
        //Jetzt werden weitere Funktionen zum Bufferfüllen und Abspielen
        //aufgerufen
    }
}

void cStream::StopStream()
{
    mStop = true;

    PauseStream(false);

    return;
}
</code></pre>
<p>Alle Variablen, die mit m beginnen sind als Member in der Headerdatei<br />
deklariert.<br />
In der Funktion cStream::StopStream() musste ich zuerst die Pause aufheben,<br />
sonst stürzt das Programm an dieser Stelle ab.<br />
Mein Problem ist jetzt, dass wenn länger als ca. 10 Sekunden pausiert und dann<br />
die Pause aufgehoben wurde, sich das Programm ohne Fehler beendet.<br />
Es existiert auch kein Servertimeout.<br />
Ich kann mir nicht erklären, warum das so ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721951</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 05 Jun 2009 18:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Fri, 05 Jun 2009 21:03:13 GMT]]></title><description><![CDATA[<p>Ich hab das ganze durch den Debugger laufen lassen. Nach dem Aufheben der<br />
Pause wird der Buffer gefüllt und über libshout an den Server gesendet.<br />
Dann wird der Buffer noch einmal gefüllt. Wenn jetzt die Sendefunktion<br />
über libshout aufgerufen wird, erhalte ich folgende Meldung:</p>
<p>Das Programm hat das Signal SIGPIPE (Broken pipe) empfangen.</p>
<p>Das ganze immer beim zweiten Sendeblock. Und von libshout kommt keine<br />
Fehlermeldung zurück. Pausiere ich nur 5 Sekunden, läuft alles problemlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722030</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 05 Jun 2009 21:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit libboost Threads on Fri, 05 Jun 2009 23:31:23 GMT]]></title><description><![CDATA[<p>Hab die Ursache gefunden. Es ist tatsächlich ein Servertimeout, welcher sich<br />
aber wahrscheinlich nicht abfragen lässt. Ich baue jetzt nach dem Ende der<br />
Pause die Verbindung neu auf. Funktioniert ganz gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722064</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 05 Jun 2009 23:31:23 GMT</pubDate></item></channel></rss>