Leí en varios lugares que Boost.Signals no es seguro para la impresión de roscas, pero no he encontrado muchos más detalles al respecto. Esta simple cita no dice mucho. Actualmente, la mayoría de las aplicaciones tienen subprocesos, incluso si intentan ser de un solo subproceso, algunas de sus bibliotecas pueden usar subprocesos (por ejemplo, libsdl).Boost: ¿qué es exactamente inseguro en Boost.Signals?
Supongo que la implementación no tiene problemas con otros subprocesos que no acceden a la ranura. Por lo tanto, es al menos seguro en este sentido.
Pero, ¿qué funciona exactamente y qué no funciona? ¿Funcionaría usarlo desde múltiples hilos siempre que nunca acceda a él al mismo tiempo? Es decir. si construyo mis propios mutexes alrededor de la ranura?
¿O estoy obligado a usar la ranura solo en ese hilo donde lo creé? ¿O dónde lo usé por primera vez?
Ha pasado un tiempo ... ¿mi respuesta a esto tenía sentido? Básicamente, la biblioteca de señales * en sí misma * no se bloqueará independientemente de las llamadas que realice desde cualquier conversación, siempre que sean "válidas" ... pero usted es responsable de la semántica en su propio código. – HostileFork
Sí, tiene sentido, pero en realidad no responde todas mis preguntas. :) Básicamente dijiste "búscalo en la fuente". Haré eso en algún momento posterior y luego publicaré todas las respuestas exactas a mis preguntas aquí. – Albert
Usted preguntó "¿qué funciona exactamente y qué no funcionaría?" Sentí que era más esencial que diseccionar sus preguntas más específicas.(Esas respuestas son "Sí: si guardas con un mutex que está bien, pero posiblemente innecesario si la semántica de tus máquinas tragamonedas es tal que más de un hilo puede ejecutarlas a la vez, es como llamar a cualquier otra función desde varios hilos" y "No: no está restringido al uso de máquinas tragamonedas solo en los hilos donde se crean".) – HostileFork