|
/* un endroit pour stocker la table de fonction originale */ struct st_mysqlnd_conn_methods org_methods; void minit_register_hooks(TSRMLS_D) { /* table de fonction active */ struct st_mysqlnd_conn_methods * current_methods = mysqlnd_conn_get_methods(); /* sauvegarde de la table de fonction originale */ memcpy(&org_methods, current_methods, sizeof(struct st_mysqlnd_conn_methods); /* installation des nouvelles méthodes */ current_methods->query = MYSQLND_METHOD(my_conn_class, query); }
|
|
La manipulación de la tabla de funciones de conexión debe hacerse durante la Inicialización de Módulos (MINIT). La tabla de funciones es un recurso global compartido. En un entorno multihilo, con un TSRM construido, la manipulación de un recurso global compartido durante el proceso de peticiones resultará en conflictos casi con toda seguridad.
|
|
Манипуляция таблицей функций соединения необходимо заниматься на этапе инициализации модуля (MINIT). Таблица функций - это глобальный разделяемый ресурс. В многопоточном окружении, со сборкой TSRM, манипуляция глобальным разделяемым ресурсом на этапе обработки запроса приведет к конфликтам.
|