Hello,

in my application, I have an auto-detection scheme to find out which host 
adapter(s) the machine has. Basically I probe each /dev/i2c-*, /dev/ttyS*, 
/dev/ttyUSB* and usb one after another to find out if there is a onewire host 
on that port.

That works fine with USB and I²C, but with serial ports, owfs hangs. No 
timeout. Tested with latest cvs.

------tcl source------
package require ow
ow open /dev/ttyS0
...hanging...

strace shows me something is going on during this "hanging", but I don't find 
the place in the source where that endless loop happens.

-------strace-------
open("/dev/ttyS0", O_RDWR|O_NOCTTY|O_NONBLOCK|O_LARGEFILE) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, TCFLSH, 0x2)                   = 0
ioctl(3, TCSBRK, 0)                     = 0
select(4, NULL, [3], NULL, {5, 0})      = 1 (out [3], left {4, 999986})
write(3, "\301", 1)                     = 1
ioctl(3, TCSBRK, 0x1)                   = 0
nanosleep({0, 4000000}, 0xbfa6b2d0)     = 0
ioctl(3, TCFLSH, 0x2)                   = 0
select(4, [3], NULL, NULL, {0, 1000})   = 0 (Timeout)
ioctl(3, TCFLSH, 0x2)                   = 0
nanosleep({0, 5000000}, 0xbfa6b220)     = 0
select(4, NULL, [3], NULL, {5, 0})      = 1 (out [3], left {4, 999992})
write(3, "q", 1)                        = 1
ioctl(3, TCSBRK, 0x1)                   = 0
nanosleep({0, 5000000}, 0xbfa6b220)     = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, TCFLSH, 0x2)                   = 0
nanosleep({0, 5000000}, 0xbfa6b220)     = 0
select(4, [3], NULL, NULL, {0, 1000})   = 0 (Timeout)
select(4, NULL, [3], NULL, {5, 0})      = 1 (out [3], left {4, 999992})
write(3, "\17", 1)                      = 1
ioctl(3, TCSBRK, 0x1)                   = 0
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
ioctl(3, TCSBRK, 0x1)                   = 0
ioctl(3, TCFLSH, 0x2)                   = 0
nanosleep({0, 5000000}, 0xbfa6b220)     = 0
select(4, NULL, [3], NULL, {5, 0})      = 1 (out [3], left {4, 999991})
write(3, "q", 1)                        = 1
ioctl(3, TCSBRK, 0x1)                   = 0
nanosleep({0, 5000000}, 0xbfa6b220)     = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {B9600 -opost -isig -icanon -echo 
...}) = 0
ioctl(3, TCFLSH, 0x2)                   = 0
nanosleep({0, 5000000}, 0xbfa6b220)     = 0
select(4, [3], NULL, NULL, {0, 1000})   = 0 (Timeout)
select(4, NULL, [3], NULL, {5, 0})      = 1 (out [3], left {4, 999992})
write(3, "\17", 1)                      = 1
ioctl(3, TCSBRK, 0x1)                   = 0
select(4, [3], NULL, NULL, {5, 0})      = 0 (Timeout)
ioctl(3, TCSBRK, 0x1)                   = 0
ioctl(3, TCFLSH, 0x2)                   = 0
select(4, NULL, [3], NULL, {5, 0})      = 1 (out [3], left {4, 999991})
write(3, "\305", 1)                     = 1
ioctl(3, TCSBRK, 0x1)                   = 0
select(4, [3], NULL, NULL, {5, 0} <unfinished ...>
-------end strace-------

Any pointers?

Kind regards

        Jan

------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Owfs-developers mailing list
Owfs-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to