<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: opensm and signals</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Hi Michael</FONT>
<BR><FONT SIZE=2>pensm and signals</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Hi, Hal, Eitan!</FONT>
<BR><FONT SIZE=2>> Whats the reason opensm needs to catch and try to handle signals such as SIGINT?</FONT>
<BR><FONT SIZE=2>[EZ] The reason was way back some drivers had resource tracking problems. So if OpenSM left without cleaning up all used resources (like MAD buffers and UD-AVs) </FONT></P>

<P><FONT SIZE=2>the driver oops'ed.</FONT>
<BR><FONT SIZE=2>> It seems that we can let the default handler simply kill the application.</FONT>
<BR><FONT SIZE=2>> If this is required for some vendor layer, shouldnt the signal</FONT>
<BR><FONT SIZE=2>> handling be part of that vendor layer?</FONT>
<BR><FONT SIZE=2>I will be glad to remove that code...</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Please note that glibc manual says</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> <A HREF="http://www.gnu.org/software/libc/manual/html_node/Defining-Handlers.html" TARGET="_blank">http://www.gnu.org/software/libc/manual/html_node/Defining-Handlers.html</A></FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> "You need to take special care in writing handler functions because they</FONT>
<BR><FONT SIZE=2>> can be called asynchronously. That is, a handler might be called at any</FONT>
<BR><FONT SIZE=2>> point in the program, unpredictably."</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> and</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> "The best practice is to write a handler that does nothing but set an</FONT>
<BR><FONT SIZE=2>> external variable that the program checks regularly, and leave all</FONT>
<BR><FONT SIZE=2>> serious work to the program."</FONT>
<BR><FONT SIZE=2>[EZ] This is exactly what the handler does - set osm_exit_flag ...</FONT>
<BR><FONT SIZE=2>> </FONT>
</P>

</BODY>
</HTML>