2017-02-18 21 views
1

Я вижу весь выход после задержки 5 секунд, но я думаю, что это должно быть иначе.Ocaml Непонимание неполадок

Я ожидаю, что следующий вывод:

главный здесь
привет получил
(и только потом спать в течение 5 сек)

, но мой код начинается спать первым на 5 сек и только затем продолжается.

let t1 ch = 
    let m = sync (receive ch) in 
    print_string (m^" -> received\n"); 
    delay 5.0; 
    sync (send ch "t1 got the message") 

let main() = 
    let ch = new_channel() in 
    create t1 ch; 
    print_string "main is here\n"; 
    sync (send ch "hi"); 
    print_string ("main confirms :"^sync(receive ch)) 

Я бы с удовольствием прочитал несколько руководств в Интернете, но я не нашел их.

ответ

2

Попробуйте промывке выходного

print_string "main is here\n"; 
flush stdout