X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=ao-bringup%2Ftest-igniter;h=454f63289e859cf245f256c4ec0c07de821f162c;hp=72dd7723a0e1a291b288272e4a882eae84084c55;hb=34b5144dbfd565ee2b9fb1e0dff388a49253f93b;hpb=834cd051af1b80a98678de221d3c45cb30f8bb0d diff --git a/ao-bringup/test-igniter b/ao-bringup/test-igniter index 72dd7723..454f6328 100755 --- a/ao-bringup/test-igniter +++ b/ao-bringup/test-igniter @@ -98,10 +98,32 @@ do_igniter(file f, string igniter) { return true; } +file +open_tty(string name) +{ + int i = 0; + for (;;) { + try { + return open (name, "r+"); + } catch open_error(string error, File::error_type error, string name) { + if (error == File::error_type.BUSY) { + if (i < 30) { + printf ("waiting for %s to be usable\n", name); + sleep(2000); + continue; + } + } else { + printf ("%s: %s\n", name, error); + exit(1); + } + } + } +} + void main () { string name = argv[1]; string[dim(argv)-2] igniters = { [i] = argv[i+2] }; - file f = open(name, "r+"); + file f = open_tty(name); bool ret = true; for (int i = 0; i < dim(igniters); i++) {