\doxysubsection{Ecore initialization, shutdown functions and reset on fork.}
\hypertarget{group__Ecore__Init__Group}{}\label{group__Ecore__Init__Group}\index{Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}}
\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init}} (void)
\begin{DoxyCompactList}\small\item\em Sets up connections, signal handlers, sockets etc. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde}{ecore\+\_\+shutdown}} (void)
\begin{DoxyCompactList}\small\item\em Shuts down connections, signal handlers sockets etc. \end{DoxyCompactList}\item 
unsigned int \mbox{\hyperlink{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}{ecore\+\_\+init\+\_\+ex}} (int argc, char \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}argv)
\begin{DoxyCompactList}\small\item\em This function will propagate the events on the main loop. \end{DoxyCompactList}\item 
unsigned int \mbox{\hyperlink{group__Ecore__Init__Group_ga20249029330ed92dcd28161c27320508}{ecore\+\_\+shutdown\+\_\+ex}} (void)
\begin{DoxyCompactList}\small\item\em Shuts down connections, signal handlers sockets etc. \end{DoxyCompactList}\item 
EWAPI void \mbox{\hyperlink{group__Ecore__Init__Group_ga0447e4cf3419d48885e40080b266b374}{efl\+\_\+build\+\_\+version\+\_\+set}} (int vmaj, int vmin, int vmic, int revision, const char \texorpdfstring{$\ast$}{*}flavor, const char \texorpdfstring{$\ast$}{*}build\+\_\+id)
\begin{DoxyCompactList}\small\item\em Inform EFL of the version this application was built for. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}




\doxysubsubsection{Function Documentation}
\Hypertarget{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}\label{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b} 
\index{Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}!ecore\_init@{ecore\_init}}
\index{ecore\_init@{ecore\_init}!Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}}
\doxysubsubsubsection{\texorpdfstring{ecore\_init()}{ecore\_init()}}
{\footnotesize\ttfamily int ecore\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Sets up connections, signal handlers, sockets etc. 

\begin{DoxyReturn}{Returns}
{\ttfamily 1} or greater on success, {\ttfamily 0} otherwise.
\end{DoxyReturn}
This function sets up all singal handlers and the basic event loop. If it succeeds, {\ttfamily 1} will be returned, otherwise {\ttfamily 0} will be returned.


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <Ecore.h>}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}\ main(\textcolor{keywordtype}{int}\ argc,\ \textcolor{keywordtype}{char}\ **argv)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\_init}}())}
\DoxyCodeLine{\ \ \{}
\DoxyCodeLine{\ \ \ \ printf(\textcolor{stringliteral}{"{}ERROR:\ Cannot\ init\ Ecore!\(\backslash\)n"{}});}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\ \ \}}
\DoxyCodeLine{\ \ \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gaf103b9f668bb3e4fed12e52c6180132d}{ecore\_main\_loop\_begin}}();}
\DoxyCodeLine{\ \ \mbox{\hyperlink{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde}{ecore\_shutdown}}();}
\DoxyCodeLine{\}}

\end{DoxyCode}


This function is affected by some environment variables\+:

\begin{DoxyItemize}
\item {\ttfamily ECORE\+\_\+\+NO\+\_\+\+SYSTEM\+\_\+\+MODULES=1} may be used to temporarily disable system modules, often useful for debug.\end{DoxyItemize}
\begin{DoxyItemize}
\item {\ttfamily ECORE\+\_\+\+FPS\+\_\+\+DEBUG=1} prints frames per second, usefult to detect lags and blocking calls.\end{DoxyItemize}
\begin{DoxyItemize}
\item {\ttfamily ECORE\+\_\+\+MEM\+\_\+\+STAT=1} will generate {\ttfamily ecore\+\_\+mem\+\_\+stat.\$\{PID\}} file with memory statistics.\end{DoxyItemize}
\begin{DoxyItemize}
\item {\ttfamily ECORE\+\_\+\+ERROR\+\_\+\+ABORT=1} will abort on errors.\end{DoxyItemize}
This function will call \doxylink{group__Eina__Main__Group_ga81b8137665b8a4d2cb38ca50017d4c74}{eina\+\_\+init()}, so other environment variables may apply. 

References \mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Main__Loop__Group_ga111f77f35bf6f6065357dd0033d75e5c}{ecore\+\_\+main\+\_\+loop\+\_\+glib\+\_\+integrate()}}, \mbox{\hyperlink{group__Ecore__Poller__Group_ga9ce7d4becc2fb4cc08e07e659c332f27}{ecore\+\_\+poller\+\_\+add()}}, \mbox{\hyperlink{group__Ecore__Poller__Group_gga40d67f547376373ee34363b825874088a022dfec751388e380cf01621bd0f797f}{ECORE\+\_\+\+POLLER\+\_\+\+CORE}}, \mbox{\hyperlink{group__Eina__Evlog_ga85601ce8bff6482fd44ac1f3669f3bfe}{eina\+\_\+evlog()}}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Main__Group_ga81b8137665b8a4d2cb38ca50017d4c74}{eina\+\_\+init()}}, \mbox{\hyperlink{group__Eina__Log__Group_ga79d0a42ab10dd0e7760b33ae33a6aae0}{eina\+\_\+log\+\_\+domain\+\_\+register()}}, \mbox{\hyperlink{group__Eina__Log__Group_ga2e33caeeeb6051526c01b7fea4d6c91b}{EINA\+\_\+\+LOG\+\_\+\+ERR}}, \mbox{\hyperlink{group__Eina__Log__Group_ga079e9de9602815a6de0d5188b65c07a2}{EINA\+\_\+\+LOG\+\_\+\+STATE\+\_\+\+INIT}}, \mbox{\hyperlink{group__Eina__Log__Group_gga125f3b55502884020a1546d0575ae052adcc235504e74cbd641635c0af36e9d47}{EINA\+\_\+\+LOG\+\_\+\+STATE\+\_\+\+STOP}}, \mbox{\hyperlink{group__Eina__Log__Group_gaceb7074e48242643ec8d3d664a32801e}{eina\+\_\+log\+\_\+timing()}}, \mbox{\hyperlink{group__Eina__Prefix__Group_ga92b8591293b0be7c1621e082229e3963}{eina\+\_\+prefix\+\_\+new()}}, \mbox{\hyperlink{group__Eina__Main__Group_ga5bf35513199d5220341437c05696285d}{eina\+\_\+shutdown()}}, \mbox{\hyperlink{group__Evil__Main__Group_gafb1a41bef00cfbdd4bd96b09c59fafa8}{evil\+\_\+init()}}, \mbox{\hyperlink{group__Evil__Main__Group_gad0f2f35a4504173b4ff420b91686e5b3}{evil\+\_\+shutdown()}}, and \mbox{\hyperlink{group__Evil__Stdlib__Group_ga4e5eaaa7b8574607c237534276f15edd}{unsetenv()}}.



Referenced by \mbox{\hyperlink{group__Ecore__Audio__Group_gac93e1ab0ee363d9b3ad28abf5aa2bd56}{ecore\+\_\+audio\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Con__Lib__Group_ga8a20f47372627a03e86a8705a6f8a82d}{ecore\+\_\+con\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Con__Url__Group_ga96388997453269f58bde7873811af6d5}{ecore\+\_\+con\+\_\+url\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Drm2__Init__Group_gac80f615f0768a0a79e3c71e9a80577eb}{ecore\+\_\+drm2\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Drm__Init__Group_gae2c58e2992ce9af065417ec998202546}{ecore\+\_\+drm\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Evas__Group_ga32ddbb6457033ad435a177eb0c4fe235}{ecore\+\_\+evas\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Input__Group_gac7674e92b0aa4d30a9f6ebb7a7ce11d6}{ecore\+\_\+event\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__File__Group_ga9497ff8ae37f46464565414711a031d0}{ecore\+\_\+file\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__IMF__Lib__Group_gade7d780e03136d2799e6d212d188184a}{ecore\+\_\+imf\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}{ecore\+\_\+init\+\_\+ex()}}, \mbox{\hyperlink{group__Ecore__Wl2__Init__Group_gad439e46a49f2c1175b572dda9a002254}{ecore\+\_\+wl2\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Wl__Init__Group_gaf158fc255ed0fbbe4721475a87d86828}{ecore\+\_\+wl\+\_\+init()}}, \mbox{\hyperlink{group__Edje__General__Group_ga1c9c6594f38023c29fbfb2d0c8c675db}{edje\+\_\+init()}}, \mbox{\hyperlink{group__Eeze__Main_gab802d08096efb76b6fd9e04414fed3c4}{eeze\+\_\+init()}}, \mbox{\hyperlink{Efreet_8h_a448e550a87271c7a74f8bf9963a8b81e}{efreet\+\_\+init()}}, \mbox{\hyperlink{group__Eio__Helper_ga557c198fc1a90518d7872b77843fa029}{eio\+\_\+init()}}, \mbox{\hyperlink{group__Eldbus__Core_gadd7c8b8a43b5dd590f7fd06166288754}{eldbus\+\_\+init()}}, \mbox{\hyperlink{group__Elm__General_gab31fb3af2f25295fea1eb05f69724eb5}{elm\+\_\+quicklaunch\+\_\+init()}}, \mbox{\hyperlink{group__Elput__Init__Group_gabde718edc099f32cae26bb58edc424b7}{elput\+\_\+init()}}, \mbox{\hyperlink{group__Emotion__API_ga5959f96c419207924c9935a9793706a5}{emotion\+\_\+init()}}, and \mbox{\hyperlink{group__Evas__Main__Group_gaa617071d85a52779e950e5b1d8c354e3}{evas\+\_\+init()}}.

\Hypertarget{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde}\label{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde} 
\index{Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}!ecore\_shutdown@{ecore\_shutdown}}
\index{ecore\_shutdown@{ecore\_shutdown}!Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}}
\doxysubsubsubsection{\texorpdfstring{ecore\_shutdown()}{ecore\_shutdown()}}
{\footnotesize\ttfamily int ecore\+\_\+shutdown (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Shuts down connections, signal handlers sockets etc. 

\begin{DoxyReturn}{Returns}
{\ttfamily 0} if ecore shuts down, greater than {\ttfamily 0} otherwise. This function shuts down all things set up in \doxylink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()} and cleans up all event queues, handlers, filters, timers, idlers, idle enterers/exiters etc. set up after \doxylink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()} was called.
\end{DoxyReturn}
Do not call this function from any callback that may be called from the main loop, as the main loop will then fall over and not function properly. 

References \mbox{\hyperlink{group__Eina__Evlog_ga85601ce8bff6482fd44ac1f3669f3bfe}{eina\+\_\+evlog()}}, \mbox{\hyperlink{group__Eina__Log__Group_ga61776fa99e910e2d40f77c688c9bee5a}{eina\+\_\+log\+\_\+domain\+\_\+unregister()}}, \mbox{\hyperlink{group__Eina__Log__Group_ga527ad9352599d503a53bf834868d3461}{EINA\+\_\+\+LOG\+\_\+\+STATE\+\_\+\+SHUTDOWN}}, \mbox{\hyperlink{group__Eina__Log__Group_gga125f3b55502884020a1546d0575ae052a42e956e3a69ea29632f7e9d27a269903}{EINA\+\_\+\+LOG\+\_\+\+STATE\+\_\+\+START}}, \mbox{\hyperlink{group__Eina__Log__Group_gaceb7074e48242643ec8d3d664a32801e}{eina\+\_\+log\+\_\+timing()}}, \mbox{\hyperlink{group__Eina__Prefix__Group_ga5eb719d9e167358b990544a7d57374d3}{eina\+\_\+prefix\+\_\+free()}}, \mbox{\hyperlink{group__Eina__Main__Group_ga5bf35513199d5220341437c05696285d}{eina\+\_\+shutdown()}}, and \mbox{\hyperlink{group__Evil__Main__Group_gad0f2f35a4504173b4ff420b91686e5b3}{evil\+\_\+shutdown()}}.



Referenced by \mbox{\hyperlink{group__Ecore__Audio__Group_gac93e1ab0ee363d9b3ad28abf5aa2bd56}{ecore\+\_\+audio\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Audio__Group_gadae0074b5e88bb7b65727f19297ece77}{ecore\+\_\+audio\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Con__Lib__Group_ga8a20f47372627a03e86a8705a6f8a82d}{ecore\+\_\+con\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Con__Lib__Group_ga0e5e01c67f7135e16db0e8f17d087d99}{ecore\+\_\+con\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Con__Url__Group_ga96388997453269f58bde7873811af6d5}{ecore\+\_\+con\+\_\+url\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Con__Url__Group_gaabcdae26e4a474dc5b9c43f60e4d00d4}{ecore\+\_\+con\+\_\+url\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Drm2__Init__Group_gac80f615f0768a0a79e3c71e9a80577eb}{ecore\+\_\+drm2\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Drm2__Init__Group_ga70a29efd6a28b22975d087c78ea2377b}{ecore\+\_\+drm2\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Drm__Init__Group_gae2c58e2992ce9af065417ec998202546}{ecore\+\_\+drm\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Drm__Init__Group_ga7bd82b81b62b5e541655e38b9cf71f58}{ecore\+\_\+drm\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Evas__Group_ga32ddbb6457033ad435a177eb0c4fe235}{ecore\+\_\+evas\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Evas__Group_gab8fa311077f749190c9b622f672b2214}{ecore\+\_\+evas\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Input__Group_gaaa308222199debcf043cea92a1b9211e}{ecore\+\_\+event\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__File__Group_gafa64f6af8d6f80acef1a29366a31d55d}{ecore\+\_\+file\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__IMF__Lib__Group_gade7d780e03136d2799e6d212d188184a}{ecore\+\_\+imf\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__IMF__Lib__Group_ga498318d0ef919461c2a84d68989bfa76}{ecore\+\_\+imf\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Init__Group_ga20249029330ed92dcd28161c27320508}{ecore\+\_\+shutdown\+\_\+ex()}}, \mbox{\hyperlink{group__Ecore__Wl2__Init__Group_gad439e46a49f2c1175b572dda9a002254}{ecore\+\_\+wl2\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__Wl2__Init__Group_ga24b19355d3cebc9c7551bfd91c31ba17}{ecore\+\_\+wl2\+\_\+shutdown()}}, \mbox{\hyperlink{group__Ecore__Wl__Init__Group_gaf158fc255ed0fbbe4721475a87d86828}{ecore\+\_\+wl\+\_\+init()}}, \mbox{\hyperlink{group__Ecore__X__Init__Group_ga92e834eefd48b55101fa30c7386a709e}{ecore\+\_\+x\+\_\+init()}}, \mbox{\hyperlink{Ecore__X_8h_a7d02c60d4c4ef4aa994e73df0286836d}{ecore\+\_\+x\+\_\+init\+\_\+from\+\_\+display()}}, \mbox{\hyperlink{group__Edje__General__Group_ga1c9c6594f38023c29fbfb2d0c8c675db}{edje\+\_\+init()}}, \mbox{\hyperlink{group__Eeze__Main_gab802d08096efb76b6fd9e04414fed3c4}{eeze\+\_\+init()}}, \mbox{\hyperlink{group__Eeze__Main_ga908dda677760bf318a67428938a07d42}{eeze\+\_\+shutdown()}}, \mbox{\hyperlink{Efreet_8h_a448e550a87271c7a74f8bf9963a8b81e}{efreet\+\_\+init()}}, \mbox{\hyperlink{Efreet_8h_a21312e3804b2ff4afed2e854b66ed827}{efreet\+\_\+shutdown()}}, \mbox{\hyperlink{group__Eio__Helper_ga7c3ad77c3f9a0346aab50f474af54b6c}{eio\+\_\+shutdown()}}, \mbox{\hyperlink{group__Eldbus__Core_gadd7c8b8a43b5dd590f7fd06166288754}{eldbus\+\_\+init()}}, \mbox{\hyperlink{group__Eldbus__Core_ga255ee3e090da6704d009ee74ba9d8a79}{eldbus\+\_\+shutdown()}}, \mbox{\hyperlink{group__Elm__General_gab31fb3af2f25295fea1eb05f69724eb5}{elm\+\_\+quicklaunch\+\_\+init()}}, \mbox{\hyperlink{group__Elm__General_ga9fcc62ef962c1b166c693cfd6f2372e4}{elm\+\_\+quicklaunch\+\_\+shutdown()}}, \mbox{\hyperlink{group__Elput__Init__Group_gabde718edc099f32cae26bb58edc424b7}{elput\+\_\+init()}}, \mbox{\hyperlink{group__Elput__Init__Group_ga73c675b1a12fa8c1ac9d3e3abadbc006}{elput\+\_\+shutdown()}}, \mbox{\hyperlink{group__Emotion__API_gac2efae65442ca95289fb273693195265}{emotion\+\_\+shutdown()}}, and \mbox{\hyperlink{group__Evas__Main__Group_gadb9d1c9f3fcff94cea89e12942c40919}{evas\+\_\+shutdown()}}.

\Hypertarget{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}\label{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8} 
\index{Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}!ecore\_init\_ex@{ecore\_init\_ex}}
\index{ecore\_init\_ex@{ecore\_init\_ex}!Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}}
\doxysubsubsubsection{\texorpdfstring{ecore\_init\_ex()}{ecore\_init\_ex()}}
{\footnotesize\ttfamily unsigned int ecore\+\_\+init\+\_\+ex (\begin{DoxyParamCaption}\item[{int}]{argc,  }\item[{char \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{argv }\end{DoxyParamCaption})}



This function will propagate the events on the main loop. 

So you should call \doxylink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()} first, then register your callback on {\ttfamily EFL\+\_\+\+LOOP\+\_\+\+EVENT\+\_\+\+ARGUMENTS} and finally call \doxylink{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}{ecore\+\_\+init\+\_\+ex()}.

Once you are shuting down your program, you should symmetrically call \doxylink{group__Ecore__Init__Group_ga20249029330ed92dcd28161c27320508}{ecore\+\_\+shutdown\+\_\+ex()}. 

References \mbox{\hyperlink{group__Ecore__Application__Group_ga70bce8ffb6e2dc2c0fdab005d566532e}{ecore\+\_\+app\+\_\+args\+\_\+set()}}, and \mbox{\hyperlink{group__Ecore__Init__Group_ga77757609684a2c922dc5ec398274751b}{ecore\+\_\+init()}}.



Referenced by \mbox{\hyperlink{group__Elm__General_ga88f19204bf05c03f7dbdf632776e0773}{elm\+\_\+quicklaunch\+\_\+fork()}}, and \mbox{\hyperlink{group__Elm__General_ga9cecc48846d90478f79176d4b279a60b}{elm\+\_\+quicklaunch\+\_\+sub\+\_\+init()}}.

\Hypertarget{group__Ecore__Init__Group_ga20249029330ed92dcd28161c27320508}\label{group__Ecore__Init__Group_ga20249029330ed92dcd28161c27320508} 
\index{Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}!ecore\_shutdown\_ex@{ecore\_shutdown\_ex}}
\index{ecore\_shutdown\_ex@{ecore\_shutdown\_ex}!Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}}
\doxysubsubsubsection{\texorpdfstring{ecore\_shutdown\_ex()}{ecore\_shutdown\_ex()}}
{\footnotesize\ttfamily unsigned int ecore\+\_\+shutdown\+\_\+ex (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Shuts down connections, signal handlers sockets etc. 

\begin{DoxyReturn}{Returns}
{\ttfamily 0} if ecore shuts down, greater than {\ttfamily 0} otherwise. This function shuts down all things set up in \doxylink{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}{ecore\+\_\+init\+\_\+ex()} and cleans up all event queues, handlers, filters, timers, idlers, idle enterers/exiters etc. set up after \doxylink{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}{ecore\+\_\+init\+\_\+ex()} was called.
\end{DoxyReturn}
Do not call this function from any callback that may be called from the main loop, as the main loop will then fall over and not function properly.

Note\+: This function should be called in symetric to \doxylink{group__Ecore__Init__Group_gaa999d9816d58d5119c3390c49878e5d8}{ecore\+\_\+init\+\_\+ex()} 

References \mbox{\hyperlink{group__Ecore__Init__Group_ga768298b932f18d7e7593a447493e5cde}{ecore\+\_\+shutdown()}}.



Referenced by \mbox{\hyperlink{group__Elm__General_ga88f19204bf05c03f7dbdf632776e0773}{elm\+\_\+quicklaunch\+\_\+fork()}}, \mbox{\hyperlink{group__Elm__General_ga9cecc48846d90478f79176d4b279a60b}{elm\+\_\+quicklaunch\+\_\+sub\+\_\+init()}}, and \mbox{\hyperlink{group__Elm__General_ga1c5b30a97472e994d2344f39595d07db}{elm\+\_\+quicklaunch\+\_\+sub\+\_\+shutdown()}}.

\Hypertarget{group__Ecore__Init__Group_ga0447e4cf3419d48885e40080b266b374}\label{group__Ecore__Init__Group_ga0447e4cf3419d48885e40080b266b374} 
\index{Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}!efl\_build\_version\_set@{efl\_build\_version\_set}}
\index{efl\_build\_version\_set@{efl\_build\_version\_set}!Ecore initialization, shutdown functions and reset on fork.@{Ecore initialization, shutdown functions and reset on fork.}}
\doxysubsubsubsection{\texorpdfstring{efl\_build\_version\_set()}{efl\_build\_version\_set()}}
{\footnotesize\ttfamily EWAPI void efl\+\_\+build\+\_\+version\+\_\+set (\begin{DoxyParamCaption}\item[{int}]{vmaj,  }\item[{int}]{vmin,  }\item[{int}]{vmic,  }\item[{int}]{revision,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{flavor,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{build\+\_\+id }\end{DoxyParamCaption})}



Inform EFL of the version this application was built for. 

This is transparently called from \$\+EFL\+\_\+\+MAIN().

\begin{DoxySince}{Since}
1.\+18 (as beta) 
\end{DoxySince}
