readln в параллельных потоках

Не понимаю, почему не работает такая программа

program sss;
uses GraphABC;

var s: string;

begin
  {$omp parallel sections}
  begin
    begin
      for var i := 1 to 100 do begin
        writeln(i);
        sleep(1000);
      end;
    end;
    
    begin
        readln(s);
        writeln('s = ', s);
    end;
  end;
end.

readln() запускается, но в s ничего не записывается. Более того, если это запустить с модулем graphABC, то в другом потоке writeln срабатывает один раз, потом ждём, когда пользователь что-то введёт в readln. И только после этого цикл в первом потоке продолжает работать. Причем если модуль GraphABC отключить, то всё работает как надо

readln - не потокобезопасный, GraphABC - тоже. Вот Вы эти проблемы и хватаете. Работать это не будет.