diff options
author | jakob <jakob@eggerapps.at> | 2010-04-16 17:18:54 +0000 |
---|---|---|
committer | jakob <jakob@eggerapps.at> | 2010-04-16 17:18:54 +0000 |
commit | f5f15a660b5663865347e2b2b162fba7ad86566f (patch) | |
tree | 5c8f1093381e02563f4b816c96a6848bf9efac3d /Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h | |
parent | 4c7dbcd724e9ac6fbd5943f147b15472833dceeb (diff) | |
download | sequelpro-f5f15a660b5663865347e2b2b162fba7ad86566f.tar.gz sequelpro-f5f15a660b5663865347e2b2b162fba7ad86566f.tar.bz2 sequelpro-f5f15a660b5663865347e2b2b162fba7ad86566f.zip |
- changed the query locking mechanism for MCPConnection to be more thread safe. From now on, always use [self lockConnection] rather than [queryLock lock], independent of what thread you are running on
- A warning is written to the console when the connection is unlocked multiple times (to identify potential race conditions)
- modified MCPStreamingResult to ensure it only closes the connection once
- added a check to prevent arrow key navigation past the last row
Diffstat (limited to 'Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h')
-rw-r--r-- | Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h b/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h index dd8a172e..10d46df2 100644 --- a/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h +++ b/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h @@ -134,8 +134,10 @@ NSUInteger mConnectionFlags; /* The flags to be used for the connection to the database. */ id delegate; /* Connection delegate */ - - NSLock *queryLock; /* Anything that performs a mysql_net_read is not thread-safe: mysql queries, pings */ + + /* Anything that performs a mysql_net_read is not thread-safe: mysql queries, pings */ + /* Always lock the connection first. Don't use this lock directly, use the lockConnection method! */ + NSConditionLock *connectionLock; BOOL useKeepAlive; BOOL isDisconnecting; @@ -278,6 +280,7 @@ void performThreadedKeepAlive(void *ptr); // Locking - (void)lockConnection; +- (BOOL)tryLockConnection; - (void)unlockConnection; // Database structure |