<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">would you mind getting some of this information into developer pages on the wiki?<div><br></div><div><a href="http://wiki.freeswitch.org/wiki/Documentation/Developer_Documentation">http://wiki.freeswitch.org/wiki/Documentation/Developer_Documentation</a></div><div><a href="http://wiki.freeswitch.org/wiki/Developer_Potpourri">http://wiki.freeswitch.org/wiki/Developer_Potpourri</a></div><div><br></div><div><br></div><div>Thanks</div><div>Mike</div><div><br><div><div>On Jan 29, 2009, at 10:13 AM, Apostolos Pantsiopoulos wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div bgcolor="#ffffff" text="#000000"> Thanks for the explanations (both Anthony and Michael).<br> You both clarified the subject quite well.<br> <br> Anthony Minessale wrote: <blockquote cite="mid:191c3a030901290555i58186cc8p2cdecd7b700f33dc@mail.gmail.com" type="cite">if your intent is to keep the data around longer than the session in it's own thread, you will want to make a new pool <br> and use that pool to launch the thread.&nbsp; pass the pool into the thread as a member of your thread private data and free<br> the pool before you exit the thread.<br>  <br> You cannot bring the session with you into the thread unless you read lock the session first so it will not be destroyed while<br> you are using it in the thread.<br>  <br> Be aware keeping the session around in the thread just a wild goose chase from doing it the why it already was doing it.<br> The session thread is already independent and it does not stop any other call from proceeding so you may as well do all the work<br> in your session thread in the state change handler like it already does and just add more strict timeout.<br> &nbsp;<br>  <br>  <div class="gmail_quote">On Thu, Jan 29, 2009 at 7:23 AM, Apostolos Pantsiopoulos <span dir="ltr">&lt;<a moz-do-not-send="true" href="mailto:regs@kinetix.gr">regs@kinetix.gr</a>></span> wrote:<br>  <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">    <div bgcolor="#ffffff" text="#000000">The question is : which pool should I use for each different thing I am trying to accomplish?<br>    <br> For instance the code below is part of my mod_radius_cdr experimentation.<br> When I am making use of a pool within a module should I :<br>    <br> a) create a new pool?<br> b) make use of an existing one?<br> c) what kind of pool should I use?<br> d) is it really just one pool (accessed through different handlers) and I am making myself look like a fool so far?    <div>    <div class="Wj3C7c"><br>    <br>    <br>    <br>    <br>    <br> Michael Jerris wrote:    <blockquote type="cite">      <pre>I am not sure even after re-reading what your question is, could you  
try to rephrase?

Mike

On Jan 29, 2009, at 8:00 AM, Apostolos Pantsiopoulos wrote:

  </pre>      <blockquote type="cite">        <pre>I found it out by myself!
(why is it that we always come with the solution right after posting  
to
the list?)

I inserted :

thread_params = switch_core_session_alloc(session,  
sizeof(*thread_params));

before the pool initialization.

But still,  can I get some answers to the questions bellow about
how to effectively handle memory allocations?



Apostolos Pantsiopoulos wrote:
    </pre>        <blockquote type="cite">          <pre>I have the code below :

struct radacct_thread_handle {
       switch_core_session_t *session;
       switch_mutex_t *mutex;
       switch_thread_cond_t *cond;
};

static switch_status_t my_on_routing(switch_core_session_t *session){

       switch_thread_t *thread;
       switch_threadattr_t *thd_attr = NULL;

       switch_memory_pool_t *pool;

       struct radacct_thread_handle *thread_params = NULL;

       pool = switch_core_session_get_pool(session);

       thread_params->session = session;

       ...

}

when the program reaches the last line (thread_params->session =  
session;)
I get a core dump. Is this a memory allocation error? Is it because  
I am
making
use of the wrong pool? Please enlighten me because I am not an  
experienced c
programmer, and I am struggling to get familiar with the FS API.

</pre></blockquote></blockquote></blockquote></div></div></div></blockquote></div></blockquote> </div></blockquote></div><br></div></body></html>