1. wait for any pre-existing Au_.exe process to finish (usually this will be a no-op)
1. wait for any pre-existing Au_.exe process to finish (usually this will be a no-op)
1. run setup.exe which we've determined somehow will spawn Au_.exe
1. run setup.exe which we've determined somehow will spawn Au_.exe
1. then wait for the Au_.exe to finish, which we are pretty confident can only be the child spawned in line 2 because we waited for any other Au_.exe processes we might have in line 1
1. then wait for the Au_.exe to finish, which we are pretty confident can only be the child spawned in line 2 because we waited for any other Au_.exe processes we might have in line 1
Whilst there's a narrow window for another Au_.exe to start executing between line 1 and 2, in practice this formulation seems to work rather reliably.
Whilst there's a narrow window for another Au_.exe to start executing between line 1 and 2, in practice this formulation seems to work rather reliably.