Guía de seguimiento dinámico de Solaris

Confirmación de una especulación

Puede confirmar especulaciones mediante la función commit. () Al confirmar una memoria intermedia especulativa, sus datos se copian en la memoria intermedia principal. Si hay más datos en la memoria intermedia especulativa que espacio disponible en la memoria intermedia principal, no se copia ningún dato y se aumenta el recuento de anulaciones de la memoria intermedia. Si se ha realizado un seguimiento especulativo de la memoria intermedia en más de una CPU, los datos especulativos de la CPU de confirmación se copian inmediatamente, mientras que los datos de las otras CPU se copian una vez transcurrido un periodo de tiempo desde que se efectuó la acción commit(). Por lo tanto, es posible que pase algún tiempo entre el inicio de la acción commit() en una CPU y la copia de datos de las memorias intermedias especulativas a las memorias intermedias principales en todas las CPU. Se garantiza que este periodo de tiempo no sea superior al tiempo indicado por la tasa de limpieza. Consulte Opciones y ajustes de especulación para obtener más información.

No estará disponible una memoria intermedia especulativa de confirmación para las siguientes llamadas a speculation() hasta que cada memoria intermedia especulativa por CPU se haya copiado por completo en la memoria intermedia principal por CPU correspondiente. Del mismo modo, se descartarán las posteriores llamadas a la función speculate() para la memoria intermedia silenciosa y fallarán de forma silenciosa las siguientes llamadas a la función commit() o discard. () Por último, una cláusula que incluya una función commit() no puede contener ninguna acción de registro de datos, aunque una cláusula puede contener varias llamadas a commit() para confirmar memorias intermedias independientes.