Hi Marco,

minicom calls open with O_NONBLOCK and resets O_NONBLOCK directly after the open call:

open("/dev/ttyUSB0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 3
fcntl(3, F_GETFL) = 0x8802 (flags O_RDWR|O_NONBLOCK|O_LARGEFILE)
fcntl(3, F_SETFL, O_RDWR|O_LARGEFILE)   = 0

doing the same in serial.pp should not change the blocking behaviour of serial.pp.

function SerOpen(const DeviceName: String): TSerialHandle;
begin
Result := fpopen(DeviceName, O_RDWR or O_NOCTTY or O_NONBLOCK); // AD: O_NONBLOCK was missing
  if result > -1 then
fpfcntl(Result,F_SETFL,O_RDWR or O_NOCTTY); //AD: non blocking off again
end;

On 08/18/2011 12:21 PM, Marco van de Voort wrote:
In our previous episode, Armin Diehl said:
should that be changed in the standard serial.pp ?
I'm not sure, since this leaves nonblocking behaviour on by default,
moreover serial is pan unix, and non linuxes might react differently.

Btw do you see minicom do a sequence of "opening in nonblock, setting params and
reopening without nonblock" ?
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to