<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: разрыв операции сигналом на х86 и АМД64</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html</link>
    <description>Доброго времени суток. &lt;br&gt;Есть ли принципиальная возможность на х86 или AMD64 машинах разрыва операции massive&#091;id&#093;=val обрабочиком сигнала между вычислением адреса, куда положить val, и собственно самим помещением val по вычисленному адресу?&lt;br&gt;Спасибо.&lt;br&gt;</description>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (ghost_in_machine)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#14</link>
    <pubDate>Thu, 25 Sep 2008 09:32:21 GMT</pubDate>
    <description>Спасибо, коллеги, за ваши ответы. Похоже, единственное решение, увы, в извращении логики программы в сторону асинхронности выявления потребности и фактического выделения памяти. Не так красиво, не так эффективно, но никаких alloc-ов в обработчиках сигнала.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#13</link>
    <pubDate>Mon, 22 Sep 2008 09:57:48 GMT</pubDate>
    <description>&amp;gt;В обработчике сигналов временами требуется перевыделять память &lt;br&gt;&amp;gt;под глобальные массивы&lt;br&gt;&lt;br&gt;Нельзя так делать ни в коем случае.&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (vic)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#12</link>
    <pubDate>Mon, 22 Sep 2008 08:37:13 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;Доброго времени суток. &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;Есть ли принципиальная возможность на х86 или AMD64 машинах разрыва операции massive&#091;id&#093;=val &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;обрабочиком сигнала между вычислением адреса, куда положить val, и собственно самим &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;помещением val по вычисленному адресу? &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;Спасибо. &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;а если подумать над тем что operator&#091;&#093;() вполне перегружаем, ы? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Спасибо, vic. Не могли бы вы пояснить свою мысль, я не понимаю &lt;br&gt;&amp;gt;какое отношение перегружаемость оператора имеет к вопросу. &lt;br&gt;&lt;br&gt;прямое, т.к. атомарности нифига не будет если используется не просто массив интов каких-нить, а что типа std::vector. Да и в случае массивов интов тоже гарантии нет. В методе оператора может быть и вывод на консоль засунут. А поручится за то что другой программист получивший ваш код в наследство не заменит ваш обычный массив на нечто более сложное с таким вот оператором, нельзя. Отсюда вывод - для атомарности всегда использовать locks/mutex предусмотренные стандартом.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (ghost_in_machine)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#11</link>
    <pubDate>Fri, 19 Sep 2008 14:31:37 GMT</pubDate>
    <description>&amp;gt;&amp;gt;опять же непонятно, что такое &quot;примитивные элементы массива&quot;. Если размер елемента масива статичен и известен, то имеет ли какое-то значение что он из &lt;br&gt;&amp;gt;&amp;gt;себя представляет? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Размер имеет значение. Смещение на лету считается для размеров в 1,2,4,8 байт. &lt;br&gt;&amp;gt;Для других размеров - необходимо считать смещение отдельно, то есть получается &lt;br&gt;&amp;gt;больше 1 операции. &lt;br&gt;&lt;br&gt;Не знал. Спасибо за разъяснения.&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#10</link>
    <pubDate>Fri, 19 Sep 2008 13:39:04 GMT</pubDate>
    <description>&amp;gt;опять же непонятно, что такое &quot;примитивные элементы массива&quot;. Если размер елемента масива статичен и известен, то имеет ли какое-то значение что он из &lt;br&gt;&amp;gt;себя представляет? &lt;br&gt;&lt;br&gt;Размер имеет значение. Смещение на лету считается для размеров в 1,2,4,8 байт. Для других размеров - необходимо считать смещение отдельно, то есть получается больше 1 операции.&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (ghost_in_machine)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#9</link>
    <pubDate>Fri, 19 Sep 2008 12:57:40 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Доброго времени суток. &lt;br&gt;&amp;gt;&amp;gt;Есть ли принципиальная возможность на х86 или AMD64 машинах разрыва операции massive&#091;id&#093;=val &lt;br&gt;&amp;gt;&amp;gt;обрабочиком сигнала между вычислением адреса, куда положить val, и собственно самим &lt;br&gt;&amp;gt;&amp;gt;помещением val по вычисленному адресу? &lt;br&gt;&amp;gt;&amp;gt;Спасибо. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;а если подумать над тем что operator&#091;&#093;() вполне перегружаем, ы? &lt;br&gt;&lt;br&gt;Спасибо, vic. Не могли бы вы пояснить свою мысль, я не понимаю какое отношение перегружаемость оператора имеет к вопросу.&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (vic)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#8</link>
    <pubDate>Fri, 19 Sep 2008 11:43:12 GMT</pubDate>
    <description>&amp;gt;Доброго времени суток. &lt;br&gt;&amp;gt;Есть ли принципиальная возможность на х86 или AMD64 машинах разрыва операции massive&#091;id&#093;=val &lt;br&gt;&amp;gt;обрабочиком сигнала между вычислением адреса, куда положить val, и собственно самим &lt;br&gt;&amp;gt;помещением val по вычисленному адресу? &lt;br&gt;&amp;gt;Спасибо. &lt;br&gt;&lt;br&gt;а если подумать над тем что operator&#091;&#093;() вполне перегружаем, ы?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (ghost_in_machine)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#7</link>
    <pubDate>Fri, 19 Sep 2008 11:37:48 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Спасибо за ответы. Не могли бы вы пояснить, что значит &amp;#171;сложность массива&amp;#187;? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Я думал ты индекс меняешь в сигнале. Если элементы массива не примитивные, &lt;br&gt;&amp;gt;то смещение вычисляется сложно, и не всегда одной командой. &lt;br&gt;&lt;br&gt;опять же непонятно, что такое &quot;примитивные элементы массива&quot;. Если размер елемента масива статичен и известен, то имеет ли какое-то значение что он из себя представляет?&lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;будет правильно вычисляться по формуле а-ля (*address_of_pointer_to_global_dynamic_massive)&#091;id&#093;=val, несмотря на то, что &lt;br&gt;&amp;gt;&amp;gt;сам указатель меняет свое значение при появлении сигнала.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Менять указатель в обработчике сигнала можно без блокировок. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Пробные пуски показали, &lt;br&gt;&amp;gt;&amp;gt;что все ОК, теперь вот пытаюсь узнать, может ли вообще такая &lt;br&gt;&amp;gt;&amp;gt;конструкция сбоить. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Может. &lt;br&gt;&lt;br&gt;н-да... неутешительно, пошел медитировать над извращением логики программы.&lt;br&gt;</description>
</item>

<item>
    <title>разрыв операции сигналом на х86 и АМД64 (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7592.html#6</link>
    <pubDate>Fri, 19 Sep 2008 10:36:24 GMT</pubDate>
    <description>&amp;gt;Спасибо за ответы. Не могли бы вы пояснить, что значит &amp;#171;сложность массива&amp;#187;? &lt;br&gt;&lt;br&gt;Я думал ты индекс меняешь в сигнале. Если элементы массива не примитивные, то смещение вычисляется сложно, и не всегда одной командой.&lt;br&gt;&lt;br&gt;&amp;gt;В обработчике сигналов временами требуется перевыделять память &lt;br&gt;&amp;gt;под глобальные массивы, с которым работает остальная часть кода.&lt;br&gt;&lt;br&gt;Вот это кошмар. Не надо выделять память в обработчике сигнала, если не хочешь проблем.&lt;br&gt;Ни brk ни mmap не входят в списов функций разрешёных обработчику сигнала.&lt;br&gt;&lt;br&gt; &lt;br&gt;&amp;gt;массив всегда &lt;br&gt;&amp;gt;будет правильно вычисляться по формуле а-ля (*address_of_pointer_to_global_dynamic_massive)&#091;id&#093;=val, несмотря на то, что &lt;br&gt;&amp;gt;сам указатель меняет свое значение при появлении сигнала.&lt;br&gt;&lt;br&gt;Менять указатель в обработчике сигнала можно без блокировок.&lt;br&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;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
