depende del kernel la cantidad maxima, por defecto si no me equivoco es de 16MB.<br>igual cuando tratas de poner algo y no entra te avisa, con lo cual no perdes los datos.<br>tambien podes usar semaforos y memoria compartida...<br>

hay que analizar el problema.<br>David<br><br><br><div class="gmail_quote">El 9 de marzo de 2010 21:24, pogui <span dir="ltr"><<a href="mailto:poguijuaz@gmail.com">poguijuaz@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Muy buena información! gracias.<br>
Solo me queda una duda, este tipo de colas tiene algun limite, es decir, puedo incluir ilimitada cantidad de elementos como lo es en una estructura dinamica?<br>
<br>
David Fire escribió:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
la llamada SI tiene que ser bloqueante<br>
busca "IPC" inter process comunication.<br>
la idea es que un thread le manda al otro la info por medio de una cola "queue" del sistema operativo.<br>
el que recibe la informacion esta dormido hasta que esta llega tonces no consume CPU.<br>
busca IPC queue<br>
<a href="http://www.cs.cf.ac.uk/Dave/C/node25.html" target="_blank">http://www.cs.cf.ac.uk/Dave/C/node25.html</a><br>
mandame un mail manana y te  paso unas clases que hice para la facu que manejan todo y es transparente para vos (o casi...)<br>
David<br>
<br></div>
El 9 de marzo de 2010 18:26, pogui <<a href="mailto:poguijuaz@gmail.com" target="_blank">poguijuaz@gmail.com</a> <mailto:<a href="mailto:poguijuaz@gmail.com" target="_blank">poguijuaz@gmail.com</a>>> escribió:<div class="im">

<br>
<br>
    Hola David, gracias por responder,<br>
    Desconosco a lo que te referís. Me das alguna pista?<br>
    Estoy bajo gnu/linux.<br>
    Al parecer que la llamada no sea bloqueante es la solución ya que<br>
    si incluyo por ejemplo un retraso con un sleep que no consume<br>
    instrucciones del procesador, el consumo baja considerablemente.<br>
<br>
    gracias por tu tiempo.<br>
<br>
    David Fire escribió:<br>
<br>
        hola<br>
        en vez de utilizar una lista utiliza una cola del sistema<br>
        operativo, la llamda es bloqueante, osea en vez de estar<br>
        perdiendo tiempo y consumiendo cpu mirando si hay datos, se va<br>
        a quedar durmiendo esperando los datos.<br>
<br>
<br>
<br>
        El 9 de marzo de 2010 12:15, pogui <<a href="mailto:poguijuaz@gmail.com" target="_blank">poguijuaz@gmail.com</a><br></div>
        <mailto:<a href="mailto:poguijuaz@gmail.com" target="_blank">poguijuaz@gmail.com</a>> <mailto:<a href="mailto:poguijuaz@gmail.com" target="_blank">poguijuaz@gmail.com</a><div><div></div><div class="h5"><br>


        <mailto:<a href="mailto:poguijuaz@gmail.com" target="_blank">poguijuaz@gmail.com</a>>>> escribió:<br>
<br>
<br>
           Hola lista, tengo el siguiente problema:<br>
           Tengo una porción de memoria dinamica (una simple cola)<br>
        compartida<br>
           entre cierta cantidad de threads, unos threads que atienden<br>
           conecciones tcp/ip agregan datos a dicha estructura dinamica, y<br>
           otro thread es el encargado de sacar datos y procesarlos.<br>
           Ahora el problema es el siguiente, el thread encargado de sacar<br>
           los datos de la estructura dinamica y procesarlos, dispara<br>
        mi cpu<br>
           al %100 ya que está en un bucle infinito checkeando que si hay<br>
           datos nuevos a procesar segun el siguiente codigo:<br>
<br>
           #include <stdio.h><br>
           #include <stdlib.h><br>
           #include <pthread.h><br>
<br>
           #include "sistemStack.h"<br>
           #include "tsmsp.h"<br>
<br>
           SMSpNodo primero,ultimo; /* el stack de datos a procesar de<br>
        ambito<br>
           global*/<br>
           pthread_mutex_t outBoxMutex; /*Mutex para proteger dicha<br>
        memoria<br>
           dinamica*/<br>
<br>
           void* outBox(void* connfd) /*Thread encargado de sacar datos y<br>
           procesarlos*/<br>
           {<br>
             int done=1;<br>
             struct smsData* smsToSend;<br>
             printf("Thread del outBox lanzado...\n\n");<br>
               while(done)  /* el bucle que consume %100 de CPU en<br>
        cuestión*/<br>
             {<br>
                 pthread_mutex_lock(&outBoxMutex);<br>
                 smsToSend=smsGet(&primero, &ultimo); /*Tratamos de<br>
        sacar un<br>
           dato de la cola  (estructura con datos  o un "0" si no hay<br>
        datos q<br>
           procesar)*/<br>
                 pthread_mutex_unlock(&outBoxMutex);<br>
                 if(smsToSend != 0) /* se encontró algun dato para<br>
        procesar*/<br>
                 {<br>
                     printf("outBox: se detectó mensaje a enviar\n");<br>
                     sendSMS(smsToSend);   /* Procesamos el dato*/<br>
                 }<br>
             }<br>
<br>
             pthread_exit(NULL);<br>
           }<br>
<br>
<br>
           El codigo funciona bien, pero no esta bien que utilice<br>
        tanto cpu,<br>
           si comento el while todo regresa a la normalidad, pero dejo de<br>
           procesar los datos.<br>
           Hay alguna manera menos perjudicial de hacer esto?<br>
           En que me estoy equivocando?<br>
<br>
           Espero haber explicado bien el problema,<br>
           Gracias por su tiempo.<br>
<br>
           _______________________________________________<br>
           Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
        <mailto:<a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a>><br>
           <mailto:<a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
        <mailto:<a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a>>><br>
<br>
                  <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
           Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
        <<a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>><br>
           <<a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
        <<a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>>><br>
<br>
<br>
<br>
<br>
        --         (\__/)<br>
        (='.'=)This is Bunny. Copy and paste bunny into your<br>
        (")_(")signature to help him gain world domination.<br>
<br>
        ------------------------------------------------------------------------<br>
<br>
<br>
<br>
        _______________________________________________<br>
        Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
        <mailto:<a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a>><br>
        <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
        Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
        <<a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>><br>
<br>
<br>
<br>
    _______________________________________________<br>
    Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
    <mailto:<a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a>><br>
    <a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
    Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
    <<a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>><br>
<br>
<br>
<br>
<br>
-- <br>
(\__/)<br>
(='.'=)This is Bunny. Copy and paste bunny into your<br>
(")_(")signature to help him gain world domination.<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote><div><div></div><div class="h5">
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>(")_(")signature to help him gain world domination. <br><br>