Я пытаюсь получить форсированное волокно и работать на os x, и у меня возникло немало проблем. Во-первых, волокно не будет компилироваться с Apple clang из-за использования thread_local
, которое Apple не поддерживает (согласно тому, что я нашел в Интернете, они думают, что могут реализовать его лучше, чем стандартный llvm, и не хотят вводить его только для разрыва ABI позже).Boost Fiber на OS X
Так что вместо этого я попытался использовать gcc-5, установленный через homebrew. После небольшого закручивания с помощью boost build мне удалось собрать волокно, и я смогу связать образцы программ успешно, но они seg fault.
Тогда я решил, что дам текущую попытку llvm, так как у нее есть поддержка thread_local, и я могу снова получить улучшенное волокно, чтобы строить отлично, но теперь у меня возникают проблемы, потому что компоновщик os x не кажется правильно отрегулируйте резьбу на месте! Я бы поставил точную ошибку, но моя сила отсутствует. Я действительно получил это, чтобы связать хотя с парой изменений в волокно, но образец программы снова провалился.
Итак, вопрос в том, как я могу это сделать? Есть ли способ заставить другой компоновщик работать для создания исполняемых файлов os x для меня? Llvm поставляется с другим компоновщиком, называемым lld, но я не думаю, что он делает то, что мне нужно.
Я думаю, что если бы мне было абсолютно необходимо, я мог бы пройти через волокно и повысить контекст, заменив все thread_local на boost :: thread_specific_ptr, но я не уверен, насколько глубоко это отверстие кролика. Какие-либо предложения?
нет кода? нет отладки, отставаний; нет ссылки на [Boost Fiber] (https://github.com/olk/boost-fiber) даже? Кажется, вы ставите на то, что кто-то делает то же самое и проявляет психическое отношение к тому, что вы делаете «неправильно», в частности – sehe
Как я уже сказал, моя сила погасла. Я обновлю вопрос, когда у меня будет доступ к моему компьютеру. До тех пор я надеялся на некоторые полезные предложения .... – pat
Хорошо. Справедливо. – sehe