<div dir="ltr">Fire up the supervisor tree as fast as possible, then do the connectivity. A good example is how mnesia does it. You have to call mnesia:wait_for_tables/1,2 in order to wait for tables to come online, but the bootup of mnesia itself is very fast. So in your case, you would call: hardware:wait_ready(arduino, 8000) to wait at most 8000ms for the arduino to come online and so on.<div>

<br></div><div>There is a recent post by Fred Hebert on this subject,</div><div><br></div><div><a href="http://ferd.ca/it-s-about-the-guarantees.html">http://ferd.ca/it-s-about-the-guarantees.html</a><br></div><div><br></div>

<div>you might want to read as well.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Dec 4, 2013 at 6:35 PM, David Welton <span dir="ltr"><<a href="mailto:davidnwelton@gmail.com" target="_blank">davidnwelton@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">> I need to start up something, hardware, say, that takes a while to<br>
> initialize, via an external process.  The next child of my supervisor<br>
> should not start until the first, slow one does.   How should I go<br>
> about notifying Erlang that things are done?  Currently, the external<br>
> system connects as an external node and sends a message.  Can I have a<br>
> receive in the gen_server's init to wait for that?<br>
<br>
</div>Initial tests show that it does work, both with a pid, and with the<br>
name of the server.<br>
<br>
Whether it's the best thing to do or not is not something I'm sure of.<br>
 If I have a 'ready' callback that receives a message from the<br>
hardware driver, how do I only then start up the other gen_servers<br>
under the supervisor - just do it dynamically?  Seems a bit roundabout<br>
compared to just starting everything in the right order.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
David N. Welton<br>
<br>
<a href="http://www.welton.it/davidw/" target="_blank">http://www.welton.it/davidw/</a><br>
<br>
<a href="http://www.dedasys.com/" target="_blank">http://www.dedasys.com/</a><br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>