No puedo decir con certeza y esto puede no ser lo que quieres escuchar, pero dado que el último lanzamiento es de fecha 2006, sería muy cuidadoso de usar esto en los últimos compiladores. Es puede trabajar, pero es probable que dependa de usted para ponerlo en marcha. Parece haber mucha discusión sobre cómo hacerlo funcionar en Cygwin y MinGW, pero poco valioso para MSVC, y nada Puedo encontrarlo más allá de MSVC2005.
Además, si examina los archivos de CVS, hay pocos archivos que se han actualizado en el último año (la mayoría son de hace dos o cinco años). La pareja que está fechada hace menos de un año tiene la descripción "Comentarios y cambios de estilo de código", lo que me lleva a pensar que ninguna parte del producto ha estado en desarrollo activo durante un tiempo.
Ahora tal vez estoy equivocado y esto es simplemente un producto estable increíblemente bien escrito, pero mi naturaleza interna es más probable que concluya que es uno de los millones de buenas ideas que se han quedado en el camino.
Y, echando un vistazo a las listas de correo, solo hay siete mensajes publicados en los primeros cinco meses de 2010 (el primero de los cuales no ha recibido respuesta durante cuatro meses) y solo 59 durante todo el 2009. Coloréame escéptico, pero eso no parece ser una comunidad de apoyo enormemente vibrante.
Parece que hay un parche para Windows de 64 bits (ver here en los archivos de 2010), pero, de nuevo, esto parece tener problemas que están sin respuesta desde febrero y sólo menciona el apoyo a MinGW:
... este parche (un poco difícil y necesita una limpieza final y alguna extensión del archivo make de prueba para permitir CROSS aquí) permite construir pthread para el objetivo x86_64-pc-mingw32.
Esta es no el tipo de cosa que estaría utilizando para mi software de misión crítica.
Y sé que usted indicó que no está interesado en reinventar la rueda, pero puede implementar bloqueos de múltiples lectores y variables de condición de las primitivas más básicas con bastante facilidad - incluso tuve un esquema de múltiples lectores que resolvió el problema de escribir la inanición de una manera que casi me consiguió una patente (no es que estoy de acuerdo con las patentes de software, pero mi empleador insiste en que son valiosas).
Y si la única rueda que ha tiene la mitad de sus radios que faltan y es terriblemente fuera de forma, es posible que sólo tenga que reconsiderar :-)
En cualquier caso, Vista y Server2k8 introdujeron tanto condition variables y slim reader/writer locks. Thread-local storage ha estado presente desde Win2k. Sé que eso no ayudará si todavía necesitas soportar XP, pero estaría mirando hacia el futuro.
Y como parece que ha definido la portabilidad como "solo para Windows", y todas las características que desea están disponibles en las versiones actuales, no estoy seguro de que vea la ventaja de seguir con pthreads. Si quería portabilidad para POSIX, sí, pero ese no parece ser el caso aquí.
Por ** ** portátil que significa sólo entre las versiones de Windows? Si es así, me quedaría con la API kernel32. ¿O hay una ventaja significativa usando pthread-win32? – jweyrich
@jweyrich. Quiero decir que puedo usarlo con los últimos MSVC-2008 y | Windows7 y | x86_64. Y no, usar Win32 API no es una opción (sin punteros específicos de hilo, sin RW-Locks, sin variables condicionales, etc.) – Artyom