Unhandled exception in parser (!)
Moderators: Murderator+, Murderator
flush log нужна только для того, что бы буфер скинулся на диск.
как правело краш происходит после 100-ой ошибки
а суть самой ошибки происходит в 1-ой из за большого объема инфы буфер успевает скинутся. flush log просто как рекомендация... во всяком из всех логов что уменя были все привели к ошибке в STL
как правело краш происходит после 100-ой ошибки
а суть самой ошибки происходит в 1-ой из за большого объема инфы буфер успевает скинутся. flush log просто как рекомендация... во всяком из всех логов что уменя были все привели к ошибке в STL
давайте не будем отвлекать ув. Грина от столь важной темы которую он нам решил осветить
хотел спросить следующее - одновременная работа uo.findtype в нескольких функциях увеличивает шанс краша или ошибки?
хотел спросить следующее - одновременная работа uo.findtype в нескольких функциях увеличивает шанс краша или ошибки?
[url=http://coop.myftp.org/utils/codesweeper.htm]**Выставляем отступы в скриптах***[/url] ©Destruction
Feel the Power of Dark Side
Feel the Power of Dark Side
Ошибка возникает как минимум при работе insert в хешьмасивы.
не долго думая можно придумать ситуацию когда происходит доступ на чтение и на запись когда может возникнуть ошибка. Хешь масивы реализованы по понятию СПИСОК со всеми вытекающими последствиями. На сайте разработчиков STL есть целая статья о тредсефти.
Собственно раз трабла возникает при инсерте (изменяется параметры СПИСКА) то ошибка может возникнуть при любом раскладе при одновременном чтении и записи в это список, зависет от обстаятельств.
не долго думая можно придумать ситуацию когда происходит доступ на чтение и на запись когда может возникнуть ошибка. Хешь масивы реализованы по понятию СПИСОК со всеми вытекающими последствиями. На сайте разработчиков STL есть целая статья о тредсефти.
Собственно раз трабла возникает при инсерте (изменяется параметры СПИСКА) то ошибка может возникнуть при любом раскладе при одновременном чтении и записи в это список, зависет от обстаятельств.
купил ты себе машину, а утебя сын есть...
Ты встаешь утром на работу, радуешься своей покупке, выходишь... а машины нет... сын взял ключи и поехал кататся... не синхронизировались...
Так и тут один поток не ведует что творит другой... пока один просматривает список другой его меняет, и в этот момент может произойти ситуация что поток который просматривает пытается перейти к следующему элементу, а до этого там покапался другой поток, и пере ходит на не существующий элемент, от сюда все что угодно... хоть переполнение буфера;)
Особо исходники ковырять и не надо даже... просто переписать функцию и добавить в класс объект синхронизации... на производительности скажется не значительно.
Ты встаешь утром на работу, радуешься своей покупке, выходишь... а машины нет... сын взял ключи и поехал кататся... не синхронизировались...
Так и тут один поток не ведует что творит другой... пока один просматривает список другой его меняет, и в этот момент может произойти ситуация что поток который просматривает пытается перейти к следующему элементу, а до этого там покапался другой поток, и пере ходит на не существующий элемент, от сюда все что угодно... хоть переполнение буфера;)
Особо исходники ковырять и не надо даже... просто переписать функцию и добавить в класс объект синхронизации... на производительности скажется не значительно.
ну да.. ты подтвердил мои догадки ...
хотя с другой стороны как показывает опыт синхронизацию безопасную делать тоже не особо простая задача.... потому как баги как ни крути останутся и где нить выползут
интереснее почему при таком глюке инжа славливает кординальный краш , а не просто роняет скрипт... хотя наверное там весь ход работы инжы из за этого глючит....
итог : НУЖЕН КОД !
хотя с другой стороны как показывает опыт синхронизацию безопасную делать тоже не особо простая задача.... потому как баги как ни крути останутся и где нить выползут
интереснее почему при таком глюке инжа славливает кординальный краш , а не просто роняет скрипт... хотя наверное там весь ход работы инжы из за этого глючит....
итог : НУЖЕН КОД !