<html><head><title>Re: [C con Clase] Problema sincronizacion hilos POSIX</title>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
</head>
<body>
<span style=" font-family:'Courier New'; font-size: 9pt;">Bueno, aquí vamos,<br>
<br>
Jorge Vega Sanchez escribió:<br>
<br>
<span style=" font-family:'verdana'; color: #010101;">Estoy haciendo una prueba para sincronizar 2 hilos (pthreads). Lo que ando buscando es crear una barrera en ambos hilos para que a partir de allí ambos hilos se ejecuten al mismo tiempo.<br>
<span style=" font-family:'Courier New'; color: #000000;"><br>
Nunca he trabajado con hilos, pero me motivan muchas cosas, y <br>
más ahora que estoy de vacas en casa.<br>
<br>
[CORTE DEL CÓDIGO]<br>
<br>
<span style=" font-family:'verdana';">En este último fichero sobran librerías incluidas pero no recordaba que librería contiene la función sleep y meti unas cuantas que tenía en otro programa.<br>
<span style=" font-family:'Courier New';"><br>
Si es en Windows con MinGW está en la stdlib.h, pero se llama <br>
_sleep(msec); con MSVC (que no me parece que sea tu caso) está <br>
en stdlib.h -> _sleep(msec) pero declarada como obsoleta y en <br>
WinBase.h -> Sleep(sec); y en Linux con GCC no recuerdo bien, <br>
pero creo que estaba unistd.h.<br>
<br>
<span style=" font-family:'verdana';">No incluye los ficheros de cabecera porque son "triviales".<br>
<span style=" font-family:'Courier New';"><br>
<span style=" font-family:'verdana';"><b><u>Solución obtenida con ese código.<br>
</u></b><span style=" font-family:'Courier New';"><br>
<span style=" font-family:'verdana';">Se produce el sleep durante 3 segundos  y psoteriormente se muestra todo seguido por pantalla.<br>
<span style=" font-family:'Courier New';"><br>
Antes de modificar el código, que lo acomodé y lo puse todo en <br>
un solo archivo, salía todo disparado para la consola, sin <br>
espera ni nada por el estilo.<br>
<br>
<span style=" font-family:'verdana';"><b><u>Solucion deseada:<br>
</u></b><span style=" font-family:'Courier New';"><br>
<span style=" font-family:'verdana';">Salidas en pantalla:<br>
hilo 1<br>
hilo2<br>
-- nada durante 3 segundos<br>
arriba hilo 1<br>
--espera un segundo - diferencial<br>
Depierta hilo 2<br>
<span style=" font-family:'Courier New';"><br>
Esto lo logré cambiándole los tiempos al sleep, y en lugar de <br>
poner los valores 1, y 3, puse estos mismos valores multiplicados <br>
por 1000. Por si te ayuda en algo el programa lo compilé en Windows 7, <br>
Code::Blocks con MinGW - TDM-1 - GCC 4.5.0.<br>
<br>
<span style=" font-family:'verdana';">El problema creo que está en las funciones del barrier pero  no consigo hacerlo funcionar bien.<br>
<span style=" font-family:'Courier New';"><br>
No he mirado el código que tiene que ver con los hilos.<br>
<br>
<span style=" font-family:'verdana';">Gracias de antemano, cualquier ayuda será bienvenida.<br>
<span style=" font-family:'Courier New';"><br>
Espero que sea esto de los sleep. Suerte<br>
<br>
<span style=" font-family:'arial'; font-size: 8pt; color: #c0c0c0;"><i>-- <br>
Salu2,<br>
 Gilbert</body>