Коллега, внимательней! )
Я спрашивал про директиву компилятора {$define UseCThreads}. Без неё сthreads можно заюзать хоть во всех модулях - всё равно будет краш.
Вопрос был, где её спрятали в примере и почему про неё не пишут в доке.
Ну так я и ответил, что директива не обязательна, потому и в примере ее нет. Нужна cthreads, и не во всех модулях, а только в lpr, поскольку она подцепляет к программе сишную библиотеку (libpthreads в линуксе). И директива эта только для этого в lpr и присутствует, и можно ее оттуда стереть или закомментировать:
program project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX} //{$IFDEF UseCThreads}
cthreads,
{$ENDIF} //{$ENDIF}
А уж почему про нее в доке не пишут, я не знаю.
И ничего "крашиться" не должно. Если не лень и не жалко, приложите архив с минимальным проектом, который крашится.
(Задним числом подправил, чтоб было понятнее)