<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: CreateWaitableTimer </title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID9/7840.html</link>
    <description>В венде есть ф-я CreateWaitableTimer, которая создает таймер, который затем можно использовать в каком-нить потоке, в одной из WaitFor-функций. Т.е. поток ожидает события от таймера, просыпается по событию, делает свои дела, снова засыпает в ожидании события от таймера. Не важно, успел ли поток сделать свои дела до следующей сработки таймера, таймер стабильно будет сигналить в заданном интервале, это я к тому, что обычный sleep() не подойдет :)&lt;br&gt;&lt;br&gt;Вопрос в том, как такое организовать в *никсах, в многопоточной проге? )&lt;br&gt;</description>

<item>
    <title>CreateWaitableTimer  (vic)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID9/7840.html#5</link>
    <pubDate>Wed, 21 Jan 2009 09:06:17 GMT</pubDate>
    <description>&amp;gt;да ладно, пофег ) &lt;br&gt;&amp;gt;еще про libev нашел, с ее помощью тоже можно сделать. &lt;br&gt;&lt;br&gt;setitimer() ? &lt;br&gt;</description>
</item>

<item>
    <title>CreateWaitableTimer  (from_mars)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID9/7840.html#4</link>
    <pubDate>Wed, 21 Jan 2009 03:20:02 GMT</pubDate>
    <description>да ладно, пофег )&lt;br&gt;еще про libev нашел, с ее помощью тоже можно сделать.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>CreateWaitableTimer  (Michelnok)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID9/7840.html#3</link>
    <pubDate>Wed, 21 Jan 2009 00:10:54 GMT</pubDate>
    <description>&amp;gt;&lt;br&gt;&amp;gt;sleep() в цикле не подходит, потому что надо чтобы событие генерилось через &lt;br&gt;&amp;gt;строго опр. промежуток времени. &lt;br&gt;&lt;br&gt;Судя по 10 сек в примере, не сильно-то и строго. Да и системы-то с разделением времени. Поэтому даже sleep вполне подходит, с предварительным вычислением, сколько реально надо спать, и надо ли спать вообще на данном шаге. Если нужны микросекунды, то вместо time/sleep можно использовать gettimeofday/usleep (или select).&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>CreateWaitableTimer  (from_mars)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID9/7840.html#2</link>
    <pubDate>Tue, 20 Jan 2009 23:09:42 GMT</pubDate>
    <description>Да вроде бы разобрался :) Нужно было следущее:&lt;br&gt;Есть многопоточная прога, нужно, чтобы один из потоков, через определенный переиод времени, получал сигнал (ну обязательно *никс сигнал, а просто сигнал, о событии), от которого этот поток просыпался, делал свое дело и дальше спать.&lt;br&gt;sleep() в цикле не подходит, потому что надо чтобы событие генерилось через строго опр. промежуток времени. &lt;br&gt;&lt;br&gt;В венде это можно сделать так:&lt;br&gt;&lt;br&gt;//не важно в каком потоке&lt;br&gt;...&lt;br&gt;hTimer = CreateWaitableTimer();&lt;br&gt;SetWaitableTimer(hTimer, 10 секунд);&lt;br&gt;...&lt;br&gt;&lt;br&gt;//в одном из потоков&lt;br&gt;&lt;br&gt;while(1) &#123;&lt;br&gt;  WaitForSingleObject(hTimer);&lt;br&gt;  do_some_code(); // мы не знаем сколько времени займет выполнение кода&lt;br&gt;  // если код будет выполнятся дольше 10 сек, то след. вызов WaitForSingleObject(hTimer)&lt;br&gt;  // сразу же вернет управление, т.к. событие уже сгенерилось и ждет когда его заметят :)&lt;br&gt;  // поэтому поток не уйдет в спячку, а опять перейдет к do_some_code(). Вот почему &lt;br&gt;  // sleep() не подходит.&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;В *никсах это можно организовать с помощью tim</description>
</item>

<item>
    <title>CreateWaitableTimer  (mikra)</title>
    <link>https://ssl.opennet.dev/openforum/vsluhforumID9/7840.html#1</link>
    <pubDate>Tue, 20 Jan 2009 08:14:49 GMT</pubDate>
    <description>&amp;gt;В венде есть ф-я CreateWaitableTimer, которая создает таймер, который затем можно использовать &lt;br&gt;&amp;gt;в каком-нить потоке, в одной из WaitFor-функций. Т.е. поток ожидает события &lt;br&gt;&amp;gt;от таймера, просыпается по событию, делает свои дела, снова засыпает в &lt;br&gt;&amp;gt;ожидании события от таймера. Не важно, успел ли поток сделать свои &lt;br&gt;&amp;gt;дела до следующей сработки таймера, таймер стабильно будет сигналить в заданном &lt;br&gt;&amp;gt;интервале, это я к тому, что обычный sleep() не подойдет :) &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Вопрос в том, как такое организовать в *никсах, в многопоточной проге? ) &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;А вопрос конкретно в чем?&lt;br&gt;&quot;Вопрос в том, как ТАКОЕ организовать в *никсах, в многопоточной проге?&quot;&lt;br&gt;или&lt;br&gt;&quot;Вопрос в том, как такое ОРГАНИЗОВАТЬ в *никсах, в многопоточной проге?&quot;&lt;br&gt;&lt;br&gt;Тоесть шашечки или ехать? :)&lt;br&gt;</description>
</item>

</channel>
</rss>
