Golodnyi
while (true) { cout << &temp_vector << endl; usleep(1000000); } это в draw
Anonymous
ты что, адрес функций берешь?
Golodnyi
почему функций? temp_vector это же то, что я передаю в поток по ссылке, через &
Anonymous
это до предыдущего сообщения было
Golodnyi
& - убери
если я уберу &, то я попытаюсь распечатать целый вектор в консоль, что как то невыполнимо, не?
Golodnyi
или ты про какое место?
Anonymous
&temp_vector это адрес указателя
Golodnyi
угу, на сколько я понимаю, моя цель чтоб адрес был одинаковый в main.cpp, в функции flex и в функции draw
Anonymous
temp_vector => vector *const
Golodnyi
в main.cpp vector<char> temp_vector; в flex() vector<char> *const temp_vector = (vector<char> *)arg; в draw() vector<char> *const temp_vector = (vector<char> *)arg;
Golodnyi
передача из main,cpp в поток, в функцию flex() pthread_create(&thread, NULL, flex, &temp_vector);
Golodnyi
нет, все будет ок
ты хочешь так? while (true) { cout << temp_vector << endl; usleep(1000000); }
Anonymous
да
Anonymous
это будет адрес вектора
Golodnyi
Flex: 0x7ffc87662ed0 Draw: 0x7ffc87662ed0
Golodnyi
Flex size: 31 Flex address: 0x7ffef0da16d0 Draw size: 0 Draw address: 0x7ffef0da16d0
Golodnyi
адрес вроде один, а данные разные...
Anonymous
будешь так кодть - будешь голодным давай код где вывод делаешь
Golodnyi
while (true) { cout << "Draw size: " << temp_vector->size() << endl; cout << "Draw address: " << temp_vector << endl; usleep(1000000); }
Golodnyi
си просто не мое)
Golodnyi
это в draw
Golodnyi
в flex в конце цикла приема данных cout << "Flex size: " << temp_vector->size() << endl; cout << "Flex address: " << temp_vector << endl;
Anonymous
видимо draw быстрей отрабатывает чем flex
Golodnyi
тоесть по этой теории если я подожду минуту, драв покажет размер?
Golodnyi
мой вывод, чтоб ты понимал
Anonymous
отладчик не завезли?
Golodnyi
могу отладчиком
Golodnyi
просто потоки брякпоинтами как то сложнее, много шагов
Anonymous
кидай код на pastebin.com
Golodnyi
давай я тебе репу расшарю? Код вообще студент пишет, я си не знаю, но так, саппортю его немного
Anonymous
ок
Golodnyi
ок
дай битбакет почту или логин
Anonymous
жди
Golodnyi
за говнокод не пугайся, я от прототипа студента красоты и ООП не прошу) и код линуксовый, надеюсь он у тебя есть, если хочешь его запускать
Anonymous
VERBiSDiablo
Golodnyi
расшарил https://bitbucket.org/getpart/gui-raspberry
Golodnyi
доктор, что с ним?
Anonymous
хз пока, функция на 440 строк - это полный пиздец пойду сперва чай попью
Golodnyi
ну когда прототип заработает, перепишу на ооп
Golodnyi
но тебе по сути интересно только отслеживать temp_vector, потому что детали реализации бинарного протокола тут к проблеме отношения не имеют, протокол работает нормально, хотя реализацию тоже надо переделывать
Сергей
Кто то сталкивался с ИИ? Пробовал обучать?
Golodnyi
свой бы обучить хотя бы
Golodnyi
лол я нашел ошибку)
Golodnyi
ой не туда
Golodnyi
а не, туда
Golodnyi
@hexenhammer короче проблема в цикле for(;;) туда программа всегда заходит и там вектор очищается, переписал на while(accept) теперь в цикл входит только если соединение принято)
Anonymous
видел тот момент, но там вроде не все так просто
Golodnyi
видел тот момент, но там вроде не все так просто
ну щя у меня размер векторов совпадает в 2-х потоках
Golodnyi
отправил студента вывести содержимое вектора в таблице, посмотрим
Golodnyi
но блин, я вчера пол дня потратил на эту багу и сейчас у меня уже 13 часов) считай целый рабочий день потратил на то, что переменная очищается не там где надо)
Anonymous
не, это я протупил, бряк в 304 строке не увидел и отчего-то думал что после вывода цикл завершается, а за ним и функция, а .clear()-то выше. Но вот только цикл завершается в 304 строке, так-что все вроде норм.
Golodnyi
там вложенный цикл завершается
Golodnyi
этот основной цикл никогда не завершается, отсюда нужда в отдельном потоке
Golodnyi
есть еще вопрос, понадобится в будущем, ссори что я к вам, вместо доки) в сях можно массив из структур как до сериализовать в файл и назад десириализовать в массив структур? Что то мне подсказывает что в плюсах так нельзя, но мало ли?
Golodnyi
ну под сями я плюсы подрузамиваю
Dmitriy
cout? 😂
А потом приносишь это мракобесие на машину с другим порядком байт и ловишь множество вкусняшек.
Dmitriy
есть еще вопрос, понадобится в будущем, ссори что я к вам, вместо доки) в сях можно массив из структур как до сериализовать в файл и назад десириализовать в массив структур? Что то мне подсказывает что в плюсах так нельзя, но мало ли?
http://www.boost.org/doc/libs/1_64_0/libs/serialization/doc/index.html можешь сюда посмотреть, если из готового. Не самая быстрая штука на моей памяти, но пару раз использовал и пока не подводила.
Dmitriy
там конечно своих подводных камней хватает. Зато самому много писать не надо ) А если по быстрому и по наглому, то переопредели просто у структур операторы ввода в поток и вывода из него (или перегрузи соответствующие функции) и плюй в файлик.
Pepe 🐸
При установке llvm ошибка что не может найти директорию. Я подозреваю что из-за пробела. Как поменять директорию ибо cmake.install файлов с неправильной директорией там десятки?
Dmitriy
Protobuf или flatbuffers можно заюзать
тоже как вариант, но protobuf как-то не очень экономно бинарную сериализацию проводит, как по мне. можно и компактнее было бы )
Pavel
тоже как вариант, но protobuf как-то не очень экономно бинарную сериализацию проводит, как по мне. можно и компактнее было бы )
Ну там реализаций много, можно сишную заюзать, по зависимостям пару файлов выходит как у flatbuffers
Dmitriy
Ну там реализаций много, можно сишную заюзать, по зависимостям пару файлов выходит как у flatbuffers
Я немного не корректно выразился. Конечный результат сериализации не всегда минимален. Но это если уже прикапываться. Совсем универсальный инструмент не написать )
Pepe 🐸
Может кто то знает что такое -P в опциях cmake_install_prefix?
Pepe 🐸
И как сделать для дебага чтобы конфигурацию поменять?
Pepe 🐸
А доках по симейк на этот счёт ничего нет
Pepe 🐸
Майбе это -DCMAKE_BUILD_TYPE=Debug
Да но мне для него надо поменять путь. То есть уже все сбилдилось
Pepe 🐸
Я меняю префикс но почему то cmake_install.cmake все равно хранит дефолтный
Pavel
Кеш чистил?
Nikita
А доках по симейк на этот счёт ничего нет
У симейка код написан лучше, чем доки
Pepe 🐸
Кэш не чистил сейчас попробую
Pepe 🐸
Кэш не знаю как почистить удалил все записи из кэша теперь ошибка
Pavel
В новой папке запусти смейк