aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2012-04-18 23:59:05 +0000
committerrowanbeentje <rowan@beent.je>2012-04-18 23:59:05 +0000
commit497ab60346e74927fb7980734799d1e57af541d5 (patch)
treee215d8c61002e1869759a47c6f344f5e9a729221 /Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m
parentec277286b0200cf5c36c4bb2ef11cb5fd9b31a67 (diff)
downloadsequelpro-497ab60346e74927fb7980734799d1e57af541d5.tar.gz
sequelpro-497ab60346e74927fb7980734799d1e57af541d5.tar.bz2
sequelpro-497ab60346e74927fb7980734799d1e57af541d5.zip
- Correctly call mysql_library_init() on application start, and mysql_thread_init() and mysql_thread_end() on each thread as appropriate. This will improve observed MySQL stability, especially in certain circumstances such as LOAD DATA INFILE.
Diffstat (limited to 'Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m')
-rw-r--r--Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m6
1 files changed, 6 insertions, 0 deletions
diff --git a/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m b/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m
index 3ce0c0cd..3201b55f 100644
--- a/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m
+++ b/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Ping & KeepAlive.m
@@ -187,6 +187,9 @@ void _backgroundPingTask(void *ptr)
// Set up a cleanup routine
pthread_cleanup_push(_pingThreadCleanup, pingDetails);
+ // Initialise MySQL variables and handling on this thread
+ mysql_thread_init();
+
// Set up a signal handler for SIGUSR1, to handle forced timeouts.
signal(SIGUSR1, _forceThreadExit);
@@ -209,6 +212,9 @@ void _pingThreadCleanup(void *pingDetails)
{
SPMySQLConnectionPingDetails *pingDetailsStruct = pingDetails;
*(pingDetailsStruct->keepAlivePingActivePointer) = NO;
+
+ // Clean up MySQL variables and handlers
+ mysql_thread_end();
}
@end