[PHP4BETA] CVS update: php4/ext/mysql
| From: | zeev | Date: | Fri, 23 Apr 1999 11:12:41 +0000 |
| Subject: | [PHP4BETA] CVS update: php4/ext/mysql | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-382@lists.php.net to get a copy of this message | ||
Date: Friday April 23, 1999 @ 7:12
Author: zeev
Update of /repository/php4/ext/mysql
In directory php:/tmp/cvs-serv16899/ext/mysql
Modified Files:
mysql.c php3_mysql.h
Log Message:
Minor MySQL thread safety issues
Index: php4/ext/mysql/mysql.c
diff -u php4/ext/mysql/mysql.c:1.1 php4/ext/mysql/mysql.c:1.2
--- php4/ext/mysql/mysql.c:1.1 Wed Apr 21 17:22:53 1999
+++ php4/ext/mysql/mysql.c Fri Apr 23 07:12:41 1999
@@ -27,7 +27,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql.c,v 1.1 1999/04/21 21:22:53 ssb Exp $ */
+/* $Id: mysql.c,v 1.2 1999/04/23 11:12:41 zeev Exp $ */
/* TODO:
@@ -62,6 +62,9 @@
#endif
+/* True globals, no need for thread safety */
+int le_result,le_link,le_plink;
+
#include "php_ini.h"
#if HAVE_MYSQL
@@ -299,17 +302,26 @@
PHP_INI_END()
+#ifdef ZTS
+static void php_mysql_init_globals(php_mysql_globals *mysql_globals)
+{
+ MySG(num_persistent) = 0;
+}
+#endif
+
+
int php3_minit_mysql(INIT_FUNC_ARGS)
{
- REGISTER_INI_ENTRIES();
+#ifdef ZTS
+ mysql_globals_id = tsrm_allocate_id(sizeof(php_mysql_globals), php_mysql_init_globals, NULL);
+#else
MySG(num_persistent)=0;
- MySG(le_result) = register_list_destructors(_free_mysql_result,NULL);
- MySG(le_link) = register_list_destructors(_close_mysql_link,NULL);
- MySG(le_plink) = register_list_destructors(NULL,_close_mysql_plink);
-
-#if 0
- printf("Registered: %d,%d,%d\n",MySG(le_result),MySG(le_link),MySG(le_plink));
#endif
+
+ REGISTER_INI_ENTRIES();
+ le_result = register_list_destructors(_free_mysql_result,NULL);
+ le_link = register_list_destructors(_close_mysql_link,NULL);
+ le_plink = register_list_destructors(NULL,_close_mysql_plink);
mysql_module_entry.type = type;
return SUCCESS;
@@ -322,6 +334,7 @@
return SUCCESS;
}
+
int php3_rinit_mysql(INIT_FUNC_ARGS)
{
MySLS_FETCH();
@@ -495,7 +508,7 @@
}
/* hash it up */
- new_le.type = MySG(le_plink);
+ new_le.type = le_plink;
new_le.ptr = mysql;
if (_php3_hash_update(plist, hashed_details, hashed_details_length+1, (void *) &new_le,
sizeof(list_entry), NULL)==FAILURE) {
free(mysql);
@@ -505,7 +518,7 @@
MySG(num_persistent)++;
MySG(num_links)++;
} else { /* we do */
- if (le->type != MySG(le_plink)) {
+ if (le->type != le_plink) {
RETURN_FALSE;
}
/* ensure that the link did not die */
@@ -537,7 +550,7 @@
#endif
mysql = (MYSQL *) le->ptr;
}
- return_value->value.lval = php3_list_insert(mysql,MySG(le_plink));
+ return_value->value.lval = php3_list_insert(mysql,le_plink);
return_value->type = IS_RESOURCE;
} else { /* non persistent */
list_entry *index_ptr,new_index_ptr;
@@ -560,7 +573,7 @@
}
link = (int) index_ptr->ptr;
ptr = php3_list_find(link,&type); /* check if the link is still there */
- if (ptr && (type==MySG(le_link) || type==MySG(le_plink))) {
+ if (ptr && (type==le_link || type==le_plink)) {
zend_list_addref(link);
return_value->value.lval = link;
php_mysql_set_default_link(link);
@@ -591,7 +604,7 @@
}
/* add it to the list */
- return_value->value.lval = php3_list_insert(mysql,MySG(le_link));
+ return_value->value.lval = php3_list_insert(mysql,le_link);
return_value->type = IS_RESOURCE;
/* add it to the hash */
@@ -662,7 +675,7 @@
}
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -703,7 +716,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -749,7 +762,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -794,7 +807,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -838,7 +851,7 @@
}
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -860,7 +873,7 @@
*/
RETURN_TRUE;
}
- return_value->value.lval = php3_list_insert(mysql_result,MySG(le_result));
+ return_value->value.lval = php3_list_insert(mysql_result,le_result);
return_value->type = IS_RESOURCE;
}
/* }}} */
@@ -897,7 +910,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -925,7 +938,7 @@
*/
RETURN_TRUE;
}
- return_value->value.lval = php3_list_insert(mysql_result,MySG(le_result));
+ return_value->value.lval = php3_list_insert(mysql_result,le_result);
return_value->type = IS_RESOURCE;
}
/* }}} */
@@ -959,7 +972,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -967,7 +980,7 @@
php3_error(E_WARNING,"Unable to save MySQL query result");
RETURN_FALSE;
}
- return_value->value.lval = php3_list_insert(mysql_result,MySG(le_result));
+ return_value->value.lval = php3_list_insert(mysql_result,le_result);
return_value->type = IS_RESOURCE;
}
/* }}} */
@@ -1004,7 +1017,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -1017,7 +1030,7 @@
php3_error(E_WARNING,"Unable to save MySQL query result");
RETURN_FALSE;
}
- return_value->value.lval = php3_list_insert(mysql_result,MySG(le_result));
+ return_value->value.lval = php3_list_insert(mysql_result,le_result);
return_value->type = IS_RESOURCE;
}
/* }}} */
@@ -1054,7 +1067,7 @@
CHECK_LINK(id);
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -1068,7 +1081,7 @@
php3_error(E_WARNING,"Unable to save MySQL query result");
RETURN_FALSE;
}
- return_value->value.lval = php3_list_insert(mysql_result,MySG(le_result));
+ return_value->value.lval = php3_list_insert(mysql_result,le_result);
return_value->type = IS_RESOURCE;
}
/* }}} */
@@ -1102,7 +1115,7 @@
RETURN_FALSE;
}
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -1141,7 +1154,7 @@
RETURN_FALSE;
}
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -1177,7 +1190,7 @@
}
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -1214,7 +1227,7 @@
}
mysql = (MYSQL *) php3_list_find(id,&type);
- if (type!=MySG(le_link) && type!=MySG(le_plink)) {
+ if (type!=le_link && type!=le_plink) {
php3_error(E_WARNING,"%d is not a MySQL link index",id);
RETURN_FALSE;
}
@@ -1255,7 +1268,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1353,7 +1366,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1380,7 +1393,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1411,7 +1424,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1463,7 +1476,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1532,7 +1545,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1565,7 +1578,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1660,7 +1673,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1710,7 +1723,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1746,7 +1759,7 @@
convert_to_long(result);
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
@@ -1915,7 +1928,7 @@
mysql_result = (MYSQL_RES *) php3_list_find(result->value.lval,&type);
- if (type!=MySG(le_result)) {
+ if (type!=le_result) {
php3_error(E_WARNING,"%d is not a MySQL result index",result->value.lval);
RETURN_FALSE;
}
Index: php4/ext/mysql/php3_mysql.h
diff -u php4/ext/mysql/php3_mysql.h:1.1 php4/ext/mysql/php3_mysql.h:1.2
--- php4/ext/mysql/php3_mysql.h:1.1 Wed Apr 21 17:22:53 1999
+++ php4/ext/mysql/php3_mysql.h Fri Apr 23 07:12:41 1999
@@ -28,7 +28,7 @@
*/
-/* $Id: php3_mysql.h,v 1.1 1999/04/21 21:22:53 ssb Exp $ */
+/* $Id: php3_mysql.h,v 1.2 1999/04/23 11:12:41 zeev Exp $ */
#ifndef _PHP3_MYSQL_H
#define _PHP3_MYSQL_H
@@ -87,7 +87,6 @@
long num_links,num_persistent;
long max_links,max_persistent;
long allow_persistent;
- int le_result,le_link,le_plink;
long default_port;
char *default_host, *default_user, *default_password;
} php_mysql_globals;
--
PHP 4 Beta