On Sun, Jan 23, 2011 at 11:28 AM, Michal Simek <[email protected]> wrote: > Rich Felker wrote: >> >> On Sat, Jan 22, 2011 at 01:40:45PM +0100, Mikhail Gusarov wrote: >>> >>> Twas brillig at 02:57:47 22.01.2011 UTC+01 when [email protected] >>> did gyre and gimble: >>> >>> DV> But it may lead to a hang if serial line gets mangled: in some >>> DV> situations tcdrain may wait forever. >>> >>> DV> I propose adding sleep(1) before the flush. Can you verify that it >>> DV> works? >>> >>> alarm+tcdrain maybe? This way it won't wait a second if there is nothing >>> to drain. >> >> Indeed this is a much better solution. Calling sleep(1) is really >> annoying. > > Give me what I should test and I will do it.
Insert sleep(1) before tcflush(0, TCIOFLUSH) in termios_init in getty.c, and let us know whether the "getty nukes a few last output chars sent before it is started" problem has been fixed by it. If it does, experiment with smaller sleeps - use usleep(MICROSECONDS) - and let us know what minimal pause is enough. Also let us know the settings on the serial line (primarily baud rate). If you can use different ones, experiment with smallest available. There is already another sleep(1) in getty, in get_logname - can you experiment with lowering it too? -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
