Thanks!
Note that serialGetchar (wiringSerial) will block for (up to) 10s if no character is available.
(From function header documentation)
And this fact (wiringSerial.c:95)
options.c_cc [VMIN] = 0 ;
options.c_cc [VTIME] = 100 ; // Ten seconds (100 deciseconds)
The effect is that the emulator will be blocked and no other processes may run (for up to 10 s)!
(unless there are more cores than one (online))
You may want to use driver_select. Should probably set the VTIME=0 to be sure.
A little plug:
There is a project using threads to get some exotic uart features, a bit heavy, but is working (even on windows!)
(Still lack documentation but has a simple api and is simple to use, nice packeting options for example)
/Tony