fixed schema object leak in network_worker

This commit is contained in:
Pauli Nieminen 2008-05-26 23:52:56 +00:00
parent 727294a4b5
commit 09da986270

View file

@ -838,16 +838,16 @@ bool close_socket(TCPsocket sock, bool force)
const threading::lock lock(*shard_mutexes[shard]);
pending_receives[shard].erase(std::remove(pending_receives[shard].begin(),pending_receives[shard].end(),sock),pending_receives[shard].end());
const socket_state_map::iterator lock_it = sockets_locked[shard].find(sock);
if(lock_it == sockets_locked[shard].end()) {
remove_buffers(sock);
return true;
}
{
const threading::lock lock_schemas(*schemas_mutex);
schemas.erase(sock);
}
const socket_state_map::iterator lock_it = sockets_locked[shard].find(sock);
if(lock_it == sockets_locked[shard].end()) {
remove_buffers(sock);
return true;
}
if (!(lock_it->second == SOCKET_LOCKED || lock_it->second == SOCKET_INTERRUPT) || force) {
sockets_locked[shard].erase(lock_it);
remove_buffers(sock);