Martin wrote:
On 11/09/2011 16:44, Mark Morgan Lloyd wrote:

- If it doesn't work without the dev/null then it may be that your system doesn't do none blocking read => but then it should return an erro when trying to set that property on the handle.

Without an explicit /dev/null it locks up as before.

- If it does work without the dev/null then it would be intersting (debugln) to find out what error occurs, and to see if it could be made working somehow (without threads)

With an explicit /dev/null it appears to work fine.

Ok at least a workaround....


Lazarus is still building for ARM, I'll report back when I know how that looks. I'll also check the exact kernel versions that the test systems have running, in case there's some problem.


I'll see if I find the time => it should be simple to copy the code from unit GDBMIClasses) TPseoudoTerminal.Open /Read and make a small test app, that will open a pseudo terminal, set the handle to none-blocking read, and call read on it => and test if read will block or not.


This system is not OK:

SPARC: Linux pye-dev-04 2.6.26-2-sparc64 #1 Mon Jun 13 17:02:25 UTC 2011 sparc64 GNU/Linux
        GNU gdb 6.8-debian


These systems are OK:

ARM: Linux pye-dev-07a 2.6.32-5-versatile #1 Tue Mar 8 19:11:56 UTC 2011 armv5tejl GNU/Linux
        GNU gdb (GDB) 7.0.1-debian

x86: Linux pye-dev-02 2.6.32 #1 SMP Thu Dec 10 15:56:27 GMT 2009 i686 GNU/Linux
        GNU gdb 6.8-debian

PPC: Linux pye-dev-05 2.6.26-2-powerpc #1 Wed May 12 23:44:56 UTC 2010 ppc GNU/Linux
        GNU gdb 6.8-debian

SPARC: SunOS pye-dev-08 5.10 Generic_118833-17 sun4u sparc SUNW,Sun-Fire-280R Solaris
        GNU gdb 6.8


All above trunk (r32275 approx) with 2.4.4. Given that the problem is seen on SPARC Linux:

*  the fact that PPC is OK suggests that it's not an endianness issue.

* the fact that SPARC on Solaris and ARM on Linux are OK suggests that it's not an alignment issue.

* we also know that it's not directly associated with a kernel or gdb version.

I think that leaves the prime suspect being some constant that varies on a platform by platform basis. s/constant/value/ :-)

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to