<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Собственные данные потока. Core Dump</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html</link>
    <description>Здравствуйте.&lt;br&gt;&lt;br&gt;Мой уровень программирования невысокий. Хочу разобраться с потоками. Если бы вы могли мне помочь понять почему у меня прога валиться в кору, буду безмерно вам благодарен.&lt;br&gt;И так коротко о программе. Программа слушает UDP сокет. При получении датаграмы, создается поток, в потоке создаются собственные данные, поток отсоеденяется и дальше идет работа с mysql, после чего функция потока завершается (соответственно вызываются деструкторы для уничтожения собственных даных потока.) Так вот кора получается то после 2 полученых пакетов, то после 20, то после 10, причем абсолютно в разных местах. Причем никакой коры нет если закоментировать запись в mysql. Выходит проблема именно когда идет взаимодействие с базой. дискриптор базы в начале у меня был объявлен глобально и любая функция могла вызвать запросы. Такой вариант тоже выпадал в кору, поэтому я решил дискриптор тоже сделать собственными данными потока. Результат - кора. Вот выдержки исходника.&lt;br&gt;&lt;br&gt;typedef struct mysql_thread&lt;br&gt;&#123;&lt;br&gt;    char query&#091;BUF_</description>

<item>
    <title>Собственные данные потока. Core Dump (guest)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#26</link>
    <pubDate>Tue, 29 Mar 2011 06:05:35 GMT</pubDate>
    <description>&amp;gt; Наставьте на пусть истинный.&lt;br&gt;&lt;br&gt;Посмотрите внимательно на свой код:&lt;br&gt;---&lt;br&gt; mysql_thread_data *mysql_insert_var;&lt;br&gt;&lt;br&gt; mysql_insert_var = calloc(1,sizeof(mysql_insert_var));&lt;br&gt;---&lt;br&gt;&lt;br&gt;ЗЫ: Вова вам правильно говорит, используйте __thread&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (фуфик)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#25</link>
    <pubDate>Mon, 28 Mar 2011 18:07:24 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt; На сайте мускуля рекомендуют использовать мутекс.&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Видимо прийдется последовать их совету.&lt;br&gt;&amp;gt;&amp;gt; http://www.opennet.ru/openforum/vsluhforumID9/9057.html#4 &lt;br&gt;&amp;gt;&amp;gt; =) &lt;br&gt;&amp;gt; совет неверный.&lt;br&gt;&lt;br&gt;Нет такой функции. &lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (Вова)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#24</link>
    <pubDate>Mon, 28 Mar 2011 14:44:40 GMT</pubDate>
    <description>&amp;gt;&amp;gt; На сайте мускуля рекомендуют использовать мутекс.&lt;br&gt;&amp;gt;&amp;gt; Видимо прийдется последовать их совету.&lt;br&gt;&amp;gt; http://www.opennet.ru/openforum/vsluhforumID9/9057.html#4 &lt;br&gt;&amp;gt; =) &lt;br&gt;&lt;br&gt;совет неверный.&lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#23</link>
    <pubDate>Sun, 27 Mar 2011 11:04:13 GMT</pubDate>
    <description>&amp;gt; На сайте мускуля рекомендуют использовать мутекс. &lt;br&gt;&amp;gt; Видимо прийдется последовать их совету.&lt;br&gt;&lt;br&gt;http://www.opennet.ru/openforum/vsluhforumID9/9057.html#4&lt;br&gt;&lt;br&gt;=)&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (ImPressed)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#22</link>
    <pubDate>Wed, 23 Mar 2011 14:53:10 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; ...&lt;br&gt;&amp;gt; If you want to use multiple threads on the same connection, you &lt;br&gt;&amp;gt; must have a mutex lock around your pair of mysql_query() and &lt;br&gt;&amp;gt; mysql_store_result() calls. Once mysql_store_result() is ready, the lock can be released &lt;br&gt;&amp;gt; and other threads may query the same connection.&lt;br&gt;&amp;gt; ....&lt;br&gt;&amp;gt; ключевое слово on the same connection. Дискриптов мускуля я сделал собственонстью потока. &lt;br&gt;&amp;gt; И каждый поток у меня открывает отедльный конект к мускулю. Но &lt;br&gt;&amp;gt; кора от этого не пропала. На сайте мускуля рекомендуют использовать мутекс. &lt;br&gt;&amp;gt; Видимо прийдется последовать их совету.&lt;br&gt;&lt;br&gt;в многопоточных приложениях вместо strtok настоятельно рекомендуется пользовать реентрантную strtok_r(). man strtok_r() вам в помощь и не изобретайте велосипеды=)&lt;br&gt;&lt;br&gt;я уже вставал на эти грабли с strtok() и прочими не реентрантыми функциями в многопоточке.&lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (magelan)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#21</link>
    <pubDate>Mon, 07 Mar 2011 09:53:12 GMT</pubDate>
    <description>Как оказалось проблем неколько с этой корой.&lt;br&gt;Первая как и предпологалось при доступе к мускулю. А вот вторая... Я парсил строки. Использовал strtok. И вот он, зараза, делал мне кору. Переписал парс на указателях, тоесть ищу символ смещаю указатели присваиваю и т.д. И эта кора пропала. Но с мускулем проблема так и осталась. На сайте мускуля написано&lt;br&gt;&lt;br&gt;The thread-safe client library, libmysqlclient_r, is thread-safe per connection. You can let two threads share the same connection with the following caveats: &lt;br&gt;&lt;br&gt;...&lt;br&gt;If you want to use multiple threads on the same connection, you must have a mutex lock around your pair of mysql_query() and mysql_store_result() calls. Once mysql_store_result() is ready, the lock can be released and other threads may query the same connection. &lt;br&gt;....&lt;br&gt;&lt;br&gt;ключевое слово on the same connection. Дискриптов мускуля я сделал собственонстью потока. И каждый поток у меня открывает отедльный конект к мускулю. Но кора от этого не пропала. На сайте мускуля рекомендуют использовать мутекс.</description>
</item>

<item>
    <title>__thread (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#20</link>
    <pubDate>Fri, 04 Mar 2011 10:37:34 GMT</pubDate>
    <description>&amp;gt; всякие тупости это не случайность,а мой стиль программирования :) &lt;br&gt;&lt;br&gt;На bash.org  срочно! :)&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (q)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#19</link>
    <pubDate>Fri, 04 Mar 2011 07:06:30 GMT</pubDate>
    <description>mysql_init и &lt;br&gt;mysql_thread_init&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Собственные данные потока. Core Dump (magelan)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9057.html#18</link>
    <pubDate>Fri, 04 Mar 2011 07:02:13 GMT</pubDate>
    <description>&amp;gt; Добавь в функцию нити sleep(10); и посмотри на указатели приватных данных :) &lt;br&gt;&lt;br&gt;делал я это уже.&lt;br&gt;действительно с адресацией ситуация исправилась, но кора не пропала.&lt;br&gt;</description>
</item>

</channel>
</rss>
