[eside-ghost] Pthreads

David Buján Carballal dbujan en eside.deusto.es
Mar Sep 15 19:21:48 CEST 2009


¿No funciona esto?

pthread_t hilo,
pthread_attr_t atributos;

void tratarConexion( TIPO-DATO* datosConexion );

/* En el "main" */

   if ( pthread_attr_init( &atributos ) != 0 ) {
      perror( "En creación de estructura de atributos." );
      exit( -1 );
   }

   if ( pthread_attr_setdetachstate( &atributos,  
PTHREAD_CREATE_DETACHED ) != 0 ) {
      perror( "En el cambio de atributos." );
      exit( -1 );
   }

   TIPO-DATO* datosConexion = ...

   pthread_create( &hilo, &atributos, (void *) tratarConexion, (void  
*) datosConexion );


*************************************************************************************


Luego dentro de la función "tratarConexion" que ejecuta cada hilo  
puedes cambiar el estado de algunos atributos, como por ejemplo si son  
"cancelables" o no y de qué tipo:

    pthread_setcancelstate( PTHREAD_CANCEL_DISABLE, NULL );

    pthread_setcancelstate( PTHREAD_CANCEL_ENABLE, NULL );
   /* Tratamiento por defecto */
    pthread_setcanceltype( PTHREAD_CANCEL_ASYNCHRONOUS, NULL );
   /* Cancelación inmediata */

    pthread_setcancelstate( PTHREAD_CANCEL_ENABLE, NULL );
   /* Tratamiento por defecto */
    pthread_setcanceltype( PTHREAD_CANCEL_DEFERRED, NULL );
   /* Cancelación diferida */
    pthread_testcancel();
   /* Hasta que el punto del código en el que pones esta llamada */

Más info en: http://opengroup.org/onlinepubs/007908799/xsh/pthread.h.html

-- 
David Buján Carballal
Facultad de Ingeniería - ESIDE (Universidad de Deusto)
Avenida de las universidades 24. 48007 Bilbao, Bizkaia (SPAIN)
email: dbujan en eside.deusto.es
URL: http://paginaspersonales.deusto.es/dbujan
Tel.: +34-944-139-000 ext. 2797
Fax.: +34-944-139-101

"No todas las personas pueden ser ilustres; pero todas pueden ser buenas. Not
everyone can be illustrious, but they all can be good."

"Buenas palabras y buenos modos cuestan poco y agradan a todos. Good words and
good manners are cheap and please everybody."

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.




Más información sobre la lista de distribución eside-ghost