Alexander "SonnySlave"
Alexander "SonnySlave"
ничего себе
Олександр
Обновляемая триалка на 90 дней :)
Oleg
бле, надо брать!
Vlad
это шикарная новость
Vlad
спасибо!
Alexander "SonnySlave"
и тут я охуел, честно говоря
Vsevolod
да непонятно на самом деле, есть ли в этом icc какой-то смысл по сравнению с современными шлангом и gcc
Vlad
судя по вебархиву появилось между сентябрем и 8 декабря
Vlad
Vlad
а в инструментах
Vsevolod
mkl?
Vlad
VTune бесплатно для коммерсов
Vsevolod
я для опенсорсного проекта взял parallel studio
Alexander "SonnySlave"
Vlad
ага
Vsevolod
так и не смог запустить - там какая-то строго оперделенная версия редхата нужна
Alexander "SonnySlave"
Vsevolod
ну, я для этого тут работу меняю :)
Vsevolod
опенсорс все-таки писать приятнее
Vsevolod
как минимум потому что есть мощный мотив писать хорошо и красиво
Oleg
VTune оче хорош
Vsevolod
да, вот ради vtune я эту parallel studio и брал, а запустить толком не удалось - так и остался на perf'е
Alexander "SonnySlave"
Alexander "SonnySlave"
по крайней мере на убунте и федоре
Vsevolod
могу, но у меня сейчас узкое место - это gc luajit'а
Vsevolod
с gc64 все стало получше, поэтому вылезли еще хеш таблицы, у которых не инлайнится hash/cmp функции
Vsevolod
но в случае си пилюля - это омерзительные конструкции с макросами :(
pavel
Рекурсивного лока требуется избежать. Надо залочиться только 1 раз и при попытке войти в лок второй раз - сделать голимый return; не совершая работы.
Anatoly
Anatoly
Pavel
pavel
Да, по рекурсии.
Anatoly
Да, по рекурсии.
тогда правильный вариант: сделать публичный интерфейс с локами, и приватный интерфейс без локов
pavel
Есть одна либа. Она входит в некий код. Код по замыслу работал без рекурсии. Но один злой чувак придумал перехватывать этот код за жопу и в обработчике у него снова идёт вызов моей либы, которая снова генерит ему то, что он перехватывает.
Anatoly
Pavel
если анлоков там в итоге столько же сколько локов, то просто присобач туда рекурсивный мютекс
Vitaliy ◀️TriΔng3l▶️
Pavel
лол. а стек вы где взяли бесконечный чтобы беспокоится не о нем, а о мютексах?
Anatoly
тогда остается ему набить морду
Vitaliy ◀️TriΔng3l▶️
И набить морду, если будет >=2
Vitaliy ◀️TriΔng3l▶️
Vitaliy ◀️TriΔng3l▶️
Значит, сразу морду набить
Vitaliy ◀️TriΔng3l▶️
А контекста нет никакого у тебя?
pavel
Есть.
Vitaliy ◀️TriΔng3l▶️
Есть.
Можно туда какие-нибудь флажки для коллбеков добавить, что когда разрешено
Anatoly
Pavel
ну и с thread_local не атомик же
Vitaliy ◀️TriΔng3l▶️
Есть дебильное решение, но для винды, а не для pthreads)
Vitaliy ◀️TriΔng3l▶️
Просто вспомнил, что движок Source таким образом проверяет, не запущен ли уже хоть один его экземпляр)))))
Vitaliy ◀️TriΔng3l▶️
Мьютекс не critical section, а тот, что в ядре, и WaitForSingleObject с нулевым таймаутом)))
Anatoly
ну и с thread_local не атомик же
погоди, а чего ты опасаешься?
void call_lib_func() {
thread_local static bool busy = false;
if( busy ) {
busy = false;
return;
}
busy = true;
lib_func();
}
Pavel
ну я и говорю, не атомик. там выше атомик предлагали.
Anatoly
зачем тредовой переменной атомик?
Vitaliy ◀️TriΔng3l▶️
Да я не подумал, что эта функция может независимо вызываться на нескольких потоках
Pavel
я же так, чисто напомнить. вы чтото вцепились )
Berkus
Alexander "SonnySlave"
давай не сюда
Alexander "SonnySlave"
Спасибо за понимание 😊
p
можно интимный вопрос?
Stanislav
Evgenii
p
можно сказать что return -1 в коде это runtime error?
Evgenii
p
нет
просто для меня это тоже очевидно вроде как, но мне скинули какую то фигню (https://imgur.com/a/eVxuf), которая вообще судя по всему к какому то отдельному конкурсу относится и я даже не знаю как ответить. есть где в инете где то классификация эта дебильная? по гуглению везде рассказывают как решить эти ошибки)
Oleg
Посоны, я вам тут радио прнес: https://github.com/fulldecent/system-bus-radio
Дмитрий ⬡
Дмитрий ⬡
В этой олимпиаде втч считается, что если код ошибки процесса не нулевой, то она упала. Причём ей не важно, это программист налажал или на самом деле там прилетел Segfault и убил.
Дмитрий ⬡
Так что выход с ненулевым кодом в приличных сообществах означает рантайм ошибку или неудачу, да, но не является рантайм ошибкой само по себе. Например, test — команда под Unix — возвращает 1 или 0, если условие, которое она проверяла, неверно или верно.
Anonymous
p
Дмитрий ⬡
Чуваки не осознали стандарт, бывает.
Дмитрий ⬡
Anonymous
По procxx.kepka трабл можно сюда?