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