<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. 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> <br> <br> <div class="gmail_quote">On Thu, Jan 29, 2009 at 7:23 AM, Apostolos Pantsiopoulos <span dir="ltr"><<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>