<?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[Critical_Section, Vista und dual-core]]></title><description><![CDATA[<p>hier mein fall, ich habe einen TThread(Borland, tut hier nichts zur sache)<br />
dieser ist teil einer applikation, in der void execute() enter ich ständig eine CS und leave sie dann, greife ich jetzt aus der anwendung (kontext der oberfläche) auf eine bestimmte funktion der thread klasse zu VERSUCHE ich dieselbe CS zu entern (eigentlich im selben moment zwischen einem leave und einem enter der execute)</p>
<p>ABER</p>
<p>es misslingt!!!</p>
<p>ich bleibe mit meinem aufruf an der entercriticalsection() hängen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /></p>
<p>baue ich ein sleep von 50ms zwischen einem leave und einem enter der execute methode funktioniert es wieder, aber das ist nicht wunschgemäß !</p>
<p>was hat sich an Critical_sections bezüglich multiprozessoren geändert ??</p>
<p>ich habe es mit InitializeCriticalSectionAnSpincount(&amp;CS, 4000); versucht aber auch das misslang ....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176584/critical_section-vista-und-dual-core</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 21:54:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176584.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Mar 2007 15:21:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 15:21:19 GMT]]></title><description><![CDATA[<p>hier mein fall, ich habe einen TThread(Borland, tut hier nichts zur sache)<br />
dieser ist teil einer applikation, in der void execute() enter ich ständig eine CS und leave sie dann, greife ich jetzt aus der anwendung (kontext der oberfläche) auf eine bestimmte funktion der thread klasse zu VERSUCHE ich dieselbe CS zu entern (eigentlich im selben moment zwischen einem leave und einem enter der execute)</p>
<p>ABER</p>
<p>es misslingt!!!</p>
<p>ich bleibe mit meinem aufruf an der entercriticalsection() hängen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /></p>
<p>baue ich ein sleep von 50ms zwischen einem leave und einem enter der execute methode funktioniert es wieder, aber das ist nicht wunschgemäß !</p>
<p>was hat sich an Critical_sections bezüglich multiprozessoren geändert ??</p>
<p>ich habe es mit InitializeCriticalSectionAnSpincount(&amp;CS, 4000); versucht aber auch das misslang ....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250573</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 22 Mar 2007 15:21:19 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 15:24:59 GMT]]></title><description><![CDATA[<p>ich glaube, das dein Problem mit einem dual-core mal gar nix zu tun hat und genau so auf SingleCore auftretten kann <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/1250576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250576</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 22 Mar 2007 15:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 15:28:02 GMT]]></title><description><![CDATA[<blockquote>
<p>ich bleibe mit meinem aufruf an der entercriticalsection() hängen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /></p>
</blockquote>
<p>vielleicht sperrst du dich selber aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250581</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 22 Mar 2007 15:28:02 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 15:37:49 GMT]]></title><description><![CDATA[<p>nein das muss ich wiederlegen, hab es doch noch in der MSDN gefunden!!! auf single core und multicore bis windows XP gilt &quot;first come first serve&quot; also wer zuerst ansteht bekommt auch zuerst.<br />
seit Windows Server 2003 SP1 ist das nicht mehr so!!! es wird empfohlen anderweitig zu synchronisieren wenn eine fifo-struktur benötigt wird.</p>
<p>Quelle: <a href="http://msdn2.microsoft.com/en-us/library/ms682530.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms682530.aspx</a></p>
<p>ausserdem habe ich für critical sections einfach eine struktur genommen mit einem ctor ala mystruct(&amp;CS);<br />
in dem ctor steht dann</p>
<pre><code class="language-cpp">struct mystruct {
    CRITICAL_SECTION* CSH;
    mystruct(CRITICAL_SECTION* aCS)
    {
        CSH = aCS;
        EnterCriticalSection(CSH);
    }
    ~mystruct()
    {
        LeaveCriticalSection(CSH);
    }
}
</code></pre>
<p>in der anwendung mach ich einfach am anfang der methode</p>
<pre><code class="language-cpp">mystruct SECURE_OBJ(&amp;CS);
</code></pre>
<p>wenn ich die methode verlasse wird automatisch leave ausgeführt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250584</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 22 Mar 2007 15:37:49 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 15:46:36 GMT]]></title><description><![CDATA[<p>ok Quelle gefunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250604</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 22 Mar 2007 15:46:36 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 16:46:09 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14678">@Ceos</a>: kann schon sein dass es bei XP so implementiert war, aber garantiert war FIFO noch nie. Da sieht man wieder mal dass es wichtig ist nach der Duko zu programmieren, und nicht nach dem beobachteten Verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250654</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 22 Mar 2007 16:46:09 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 18:22:01 GMT]]></title><description><![CDATA[<p>naja FIFO hab ich nicht vorausgesetzt, aber das nach einem leave der erstbeste wartende enter drankommt hab ich eigentlich erwartet .... egal habs ERSTMAL mit nem sleep(0) gefixt, aber die feine englische isses natürlich nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250728</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 22 Mar 2007 18:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Thu, 22 Mar 2007 21:31:17 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250855</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 22 Mar 2007 21:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Fri, 23 Mar 2007 02:37:25 GMT]]></title><description><![CDATA[<p>Ja, ok, wenn man es so sieht...<br />
Hast schon irgendwie recht...<br />
In dem Moment wo das &quot;leave&quot; passiert wartet der Thread welcher &quot;leave&quot; macht ja noch nicht wieder, andere aber schon. Eigentlich sollte der die Ownership gleich ohne irgendwelche Spielchen an den nächsten wartenden Thread übertragen und den aufwecken...<br />
Hmmm.<br />
Keine Ahnung wieso sie das geändert haben. Wäre mal interessant den Code durchzusteppen... und bissi zu profilen ob der neue Code schneller ist als der alte.<br />
Dass die Änderung für den Support von Condition Variablen notwändig war bezweifle ich auf jeden Fall stark, denn die kann man auch in Windows XP relativ schön mit einer CS machen. Hmmmmmmm. *wunder*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250900</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 23 Mar 2007 02:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Critical_Section, Vista und dual-core on Fri, 23 Mar 2007 07:51:27 GMT]]></title><description><![CDATA[<p>ich weis ja nich ob ich mit damit zu weit ausm fenster lehne aber benutzt die funktion waitforsingleobject() nicht CS zum handling ?????<br />
wenn ja wäre auch nicht mehr gewährleistet das ein thread der am waitfor hängt auch ausgelöst wird.<br />
desweiteren würd ich gern nach ner alternative frage, was man statt ner CS einsetzen kannn um z.B. einem vector des thread, den er permanent abarbeitet, einen wert aus eiem anderen thread heraus zu adden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250937</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Fri, 23 Mar 2007 07:51:27 GMT</pubDate></item></channel></rss>