\hypertarget{opal__progress_8h}{\section{opal/runtime/opal\+\_\+progress.h File Reference}
\label{opal__progress_8h}\index{opal/runtime/opal\+\_\+progress.\+h@{opal/runtime/opal\+\_\+progress.\+h}}
}


\hyperlink{structProgress}{Progress} engine for Open M\+P\+I.  


{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/threads/mutex.\+h\char`\"{}}\\*
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int($\ast$ \hyperlink{opal__progress_8h_a546ee7d1d5df8c08ed39602608f33a2c}{opal\+\_\+progress\+\_\+callback\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em \hyperlink{structProgress}{Progress} callback function typedef. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{opal__progress_8h_ae701e531f0fc7055e6af37bcb1c0f636}{opal\+\_\+progress\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize the progress engine. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{opal__progress_8h_ad2a2ad40c29f0802ce640d3dd5d6d627}{opal\+\_\+progress\+\_\+finalize} (void)
\begin{DoxyCompactList}\small\item\em Shut down the progress engine. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress} (void)
\begin{DoxyCompactList}\small\item\em \hyperlink{structProgress}{Progress} all pending events. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{opal__progress_8h_a3cd64106333e936adfc8fa4fa1c1170e}{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag} (int flags)
\begin{DoxyCompactList}\small\item\em \hyperlink{structControl}{Control} how the event library is called. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{opal__progress_8h_abfbd6fab4414c8d01fa6ea7672b37353}{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment} (void)
\begin{DoxyCompactList}\small\item\em Increase the number of users of the event library. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{opal__progress_8h_a600d72da9a403c3114b9037704d2b28e}{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement} (void)
\begin{DoxyCompactList}\small\item\em Decrease the number of users of the event library. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool \hyperlink{opal__progress_8h_aacdcfb011eb54f4e6506002841da15b8}{opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle} (bool yieldopt)
\begin{DoxyCompactList}\small\item\em Set whether \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} should yield when idle. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{opal__progress_8h_a0e240be0935cf3b5e0958509fbf9e2f7}{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate} (int microseconds)
\begin{DoxyCompactList}\small\item\em Set time between calls into the event library. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{opal__progress_8h_a04cc29e7bb5358300c34c2da9eab592c}{opal\+\_\+progress\+\_\+register} (\hyperlink{opal__progress_8h_a546ee7d1d5df8c08ed39602608f33a2c}{opal\+\_\+progress\+\_\+callback\+\_\+t} cb)
\begin{DoxyCompactList}\small\item\em Register an event to be progressed. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{opal__progress_8h_ab6bb88a3a526f545b905f56a1e8fbe40}{opal\+\_\+progress\+\_\+unregister} (\hyperlink{opal__progress_8h_a546ee7d1d5df8c08ed39602608f33a2c}{opal\+\_\+progress\+\_\+callback\+\_\+t} cb)
\begin{DoxyCompactList}\small\item\em Deregister previously registered event. \end{DoxyCompactList}\item 
\hypertarget{opal__progress_8h_a163777e252d2dd902214730bd9db53f4}{static bool {\bfseries opal\+\_\+progress\+\_\+threads} (void)}\label{opal__progress_8h_a163777e252d2dd902214730bd9db53f4}

\item 
\hypertarget{opal__progress_8h_aaddd3dce606d622e668fa5d00e5a46e2}{static bool \hyperlink{opal__progress_8h_aaddd3dce606d622e668fa5d00e5a46e2}{opal\+\_\+progress\+\_\+spin} (volatile bool $\ast$complete)}\label{opal__progress_8h_aaddd3dce606d622e668fa5d00e5a46e2}

\begin{DoxyCompactList}\small\item\em \hyperlink{structProgress}{Progress} until flag is true or poll iterations completed. \end{DoxyCompactList}\item 
static uint32\+\_\+t \hyperlink{opal__progress_8h_aff4619da47db9fc91842e8d3d025a21d}{opal\+\_\+progress\+\_\+recursion\+\_\+depth} (void)
\begin{DoxyCompactList}\small\item\em Return the current level of recursion -- 0 means that we are not under an \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} call at all. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{opal__progress_8h_a775e2d696cae4f4e548003deff629df1}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C volatile int32\+\_\+t {\bfseries opal\+\_\+progress\+\_\+thread\+\_\+count}}\label{opal__progress_8h_a775e2d696cae4f4e548003deff629df1}

\item 
\hypertarget{opal__progress_8h_a879a263ff2882b4018718a2cab8cf43e}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries opal\+\_\+progress\+\_\+spin\+\_\+count}}\label{opal__progress_8h_a879a263ff2882b4018718a2cab8cf43e}

\item 
\hypertarget{opal__progress_8h_a2ff97b92b5d4db4d752823928c2ee11f}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C uint32\+\_\+t {\bfseries opal\+\_\+progress\+\_\+recursion\+\_\+depth\+\_\+counter}}\label{opal__progress_8h_a2ff97b92b5d4db4d752823928c2ee11f}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{structProgress}{Progress} engine for Open M\+P\+I. 



\subsection{Typedef Documentation}
\hypertarget{opal__progress_8h_a546ee7d1d5df8c08ed39602608f33a2c}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+callback\+\_\+t@{opal\+\_\+progress\+\_\+callback\+\_\+t}}
\index{opal\+\_\+progress\+\_\+callback\+\_\+t@{opal\+\_\+progress\+\_\+callback\+\_\+t}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+callback\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ opal\+\_\+progress\+\_\+callback\+\_\+t)(void)}}\label{opal__progress_8h_a546ee7d1d5df8c08ed39602608f33a2c}


\hyperlink{structProgress}{Progress} callback function typedef. 

Prototype for the a progress function callback. \hyperlink{structProgress}{Progress} function callbacks can be registered with \hyperlink{opal__progress_8h_a04cc29e7bb5358300c34c2da9eab592c}{opal\+\_\+progress\+\_\+register()} and deregistered with opal\+\_\+progress\+\_\+deregister(). It should be noted that either registering or deregistering a function callback is an extraordinarily expensive operation and should not be used for potentially short callback lifetimes.

\begin{DoxyReturn}{Returns}
Number of events progressed during the callback 
\end{DoxyReturn}


\subsection{Function Documentation}
\hypertarget{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress@{opal\+\_\+progress}}
\index{opal\+\_\+progress@{opal\+\_\+progress}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+progress (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}


\hyperlink{structProgress}{Progress} all pending events. 

\hyperlink{structProgress}{Progress} all pending events. All registered event handlers will be called every call into \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()}. The event library will be called if opal\+\_\+progress\+\_\+event\+\_\+users is greater than 0 (adjustments can be made by calling opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+add() and opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+delete()) or the time since the last call into the event library is greater than the progress tick rate (by default, 10ms). 

References opal\+\_\+atomic\+\_\+add, and O\+P\+A\+L\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+A\+D\+D32.



Referenced by mca\+\_\+btl\+\_\+sm\+\_\+add\+\_\+procs(), mca\+\_\+btl\+\_\+smcuda\+\_\+add\+\_\+procs(), mca\+\_\+btl\+\_\+udapl\+\_\+put(), and opal\+\_\+progress\+\_\+spin().

\hypertarget{opal__progress_8h_a600d72da9a403c3114b9037704d2b28e}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement@{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement}}
\index{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement@{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_a600d72da9a403c3114b9037704d2b28e}


Decrease the number of users of the event library. 

Decrease the number of users of the event library. This count is used by opal\+\_\+progress to determine if opal\+\_\+event\+\_\+loop() should be called every call to \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} or only after a time has elapsed since the last call (by default, 10ms). 

References O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T.



Referenced by mca\+\_\+btl\+\_\+sctp\+\_\+del\+\_\+procs(), mca\+\_\+btl\+\_\+sctp\+\_\+finalize(), mca\+\_\+btl\+\_\+tcp\+\_\+del\+\_\+procs(), mca\+\_\+btl\+\_\+tcp\+\_\+finalize(), and ompi\+\_\+mpi\+\_\+init().

\hypertarget{opal__progress_8h_abfbd6fab4414c8d01fa6ea7672b37353}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment@{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment}}
\index{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment@{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_abfbd6fab4414c8d01fa6ea7672b37353}


Increase the number of users of the event library. 

Increase the number of users of the event library. This count is used by opal\+\_\+progress to determine if opal\+\_\+event\+\_\+loop() should be called every call to \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} or only after a time has elapsed since the last call (by default, 10ms). The count defaults to 0, meaning that \hyperlink{opal__progress_8h_abfbd6fab4414c8d01fa6ea7672b37353}{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment()} must be called at least once for the event loop to be called on every entry to \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()}. 

References O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T.



Referenced by mca\+\_\+btl\+\_\+sctp\+\_\+add\+\_\+procs(), mca\+\_\+btl\+\_\+tcp\+\_\+add\+\_\+procs(), ompi\+\_\+mpi\+\_\+finalize(), and opal\+\_\+init().

\hypertarget{opal__progress_8h_ad2a2ad40c29f0802ce640d3dd5d6d627}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+finalize@{opal\+\_\+progress\+\_\+finalize}}
\index{opal\+\_\+progress\+\_\+finalize@{opal\+\_\+progress\+\_\+finalize}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+finalize}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+progress\+\_\+finalize (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_ad2a2ad40c29f0802ce640d3dd5d6d627}


Shut down the progress engine. 

Shut down the progress engine. This includes deregistering all registered callbacks and freeing all resources. After finalize returns, no calls into the progress interface are allowed. 

References opal\+\_\+atomic\+\_\+lock(), and opal\+\_\+atomic\+\_\+unlock().



Referenced by opal\+\_\+finalize().

\hypertarget{opal__progress_8h_ae701e531f0fc7055e6af37bcb1c0f636}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+init@{opal\+\_\+progress\+\_\+init}}
\index{opal\+\_\+progress\+\_\+init@{opal\+\_\+progress\+\_\+init}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+progress\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_ae701e531f0fc7055e6af37bcb1c0f636}


Initialize the progress engine. 

Initialize the progress engine, including constructing the proper locks and allocating space for the progress registration functions. At this point, any function in the progress engine interface may be called. 

References mca\+\_\+base\+\_\+param\+\_\+find(), mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int(), opal\+\_\+atomic\+\_\+init(), O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T, opal\+\_\+output\+\_\+open(), and opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate().



Referenced by opal\+\_\+init().

\hypertarget{opal__progress_8h_aff4619da47db9fc91842e8d3d025a21d}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+recursion\+\_\+depth@{opal\+\_\+progress\+\_\+recursion\+\_\+depth}}
\index{opal\+\_\+progress\+\_\+recursion\+\_\+depth@{opal\+\_\+progress\+\_\+recursion\+\_\+depth}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+recursion\+\_\+depth}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\+\_\+t opal\+\_\+progress\+\_\+recursion\+\_\+depth (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{opal__progress_8h_aff4619da47db9fc91842e8d3d025a21d}


Return the current level of recursion -- 0 means that we are not under an \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} call at all. 

1 means that you're in the top-\/level \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} function (i.\+e., not deep in recursion). Higher values mean that you're that many levels deep in recursion. \hypertarget{opal__progress_8h_a04cc29e7bb5358300c34c2da9eab592c}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+register@{opal\+\_\+progress\+\_\+register}}
\index{opal\+\_\+progress\+\_\+register@{opal\+\_\+progress\+\_\+register}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+register}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+progress\+\_\+register (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+progress\+\_\+callback\+\_\+t}}]{cb}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_a04cc29e7bb5358300c34c2da9eab592c}


Register an event to be progressed. 

Register an event to be progressed during calls to \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()}. Please read the note in opal\+\_\+progress\+\_\+callback\+\_\+t. 

References opal\+\_\+atomic\+\_\+lock(), and opal\+\_\+atomic\+\_\+unlock().

\hypertarget{opal__progress_8h_a3cd64106333e936adfc8fa4fa1c1170e}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag@{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag}}
\index{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag@{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag (
\begin{DoxyParamCaption}
\item[{int}]{flags}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_a3cd64106333e936adfc8fa4fa1c1170e}


\hyperlink{structControl}{Control} how the event library is called. 

Adjust the flags argument used to call opal\+\_\+event\+\_\+loop() from \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()}. The default argument is O\+P\+A\+L\+\_\+\+E\+V\+L\+O\+O\+P\+\_\+\+O\+N\+E\+L\+O\+O\+P, meaning that the call to opal\+\_\+event\+\_\+loop() will block pending events, but may block for a period of time.


\begin{DoxyParams}{Parameters}
{\em flags} & One of the valid vlags argument to opal\+\_\+event\+\_\+loop(). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Previous value of flags used to call opal\+\_\+event\+\_\+loop(). 
\end{DoxyReturn}


References O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T.



Referenced by ompi\+\_\+mpi\+\_\+finalize(), and ompi\+\_\+mpi\+\_\+init().

\hypertarget{opal__progress_8h_a0e240be0935cf3b5e0958509fbf9e2f7}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate@{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate}}
\index{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate@{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate (
\begin{DoxyParamCaption}
\item[{int}]{microseconds}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_a0e240be0935cf3b5e0958509fbf9e2f7}


Set time between calls into the event library. 

Set time between calls into the event library when there are no users of the event library (set by \hyperlink{opal__progress_8h_abfbd6fab4414c8d01fa6ea7672b37353}{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment()} and \hyperlink{opal__progress_8h_a600d72da9a403c3114b9037704d2b28e}{opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement()}).


\begin{DoxyParams}{Parameters}
{\em polltime} & Time (in microseconds) between calls to the event library \\
\hline
\end{DoxyParams}


References O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T.



Referenced by ompi\+\_\+mpi\+\_\+init(), and opal\+\_\+progress\+\_\+init().

\hypertarget{opal__progress_8h_aacdcfb011eb54f4e6506002841da15b8}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle@{opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle}}
\index{opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle@{opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle (
\begin{DoxyParamCaption}
\item[{bool}]{yieldopt}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_aacdcfb011eb54f4e6506002841da15b8}


Set whether \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} should yield when idle. 

Set whether \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()} should yield the processor (either by sched\+\_\+yield() or Switch\+To\+Thread()) if no events were progressed during the progress loop. The return value of the callback functions is used to determine whether or not yielding is required. By default, the event loop will yield when the progress function is idle.


\begin{DoxyParams}{Parameters}
{\em yieldopt} & Whether to yield when idle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Previous value of the yield\+\_\+when\+\_\+idle option. 
\end{DoxyReturn}


References O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T.



Referenced by ompi\+\_\+mpi\+\_\+init().

\hypertarget{opal__progress_8h_ab6bb88a3a526f545b905f56a1e8fbe40}{\index{opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}!opal\+\_\+progress\+\_\+unregister@{opal\+\_\+progress\+\_\+unregister}}
\index{opal\+\_\+progress\+\_\+unregister@{opal\+\_\+progress\+\_\+unregister}!opal\+\_\+progress.\+h@{opal\+\_\+progress.\+h}}
\subsubsection[{opal\+\_\+progress\+\_\+unregister}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+progress\+\_\+unregister (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+progress\+\_\+callback\+\_\+t}}]{cb}
\end{DoxyParamCaption}
)}}\label{opal__progress_8h_ab6bb88a3a526f545b905f56a1e8fbe40}


Deregister previously registered event. 

Deregister an event to be progressed during calls to \hyperlink{opal__progress_8h_a89fcac5ab9895b0823687d1f56d883a4}{opal\+\_\+progress()}. Please read the note in opal\+\_\+progress\+\_\+callback\+\_\+t. 

References opal\+\_\+atomic\+\_\+lock(), and opal\+\_\+atomic\+\_\+unlock().

