We shouldn't try to unlock a no-longer-existing endpoint.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19425 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
03a536148f
commit
545be9ce4c
@ -1166,42 +1166,42 @@ TCPEndpoint::_SendQueued(bool force)
|
||||
/*static*/ void
|
||||
TCPEndpoint::_RetransmitTimer(net_timer *timer, void *data)
|
||||
{
|
||||
TCPEndpoint *connection = (TCPEndpoint *)data;
|
||||
TCPEndpoint *endpoint = (TCPEndpoint *)data;
|
||||
|
||||
RecursiveLocker locker(connection->Lock());
|
||||
RecursiveLocker locker(endpoint->Lock());
|
||||
|
||||
connection->fSendNext = connection->fSendUnacknowledged;
|
||||
connection->_SendQueued();
|
||||
connection->fSendNext = connection->fSendMax;
|
||||
endpoint->fSendNext = endpoint->fSendUnacknowledged;
|
||||
endpoint->_SendQueued();
|
||||
endpoint->fSendNext = endpoint->fSendMax;
|
||||
}
|
||||
|
||||
|
||||
/*static*/ void
|
||||
TCPEndpoint::_PersistTimer(net_timer *timer, void *data)
|
||||
{
|
||||
TCPEndpoint *connection = (TCPEndpoint *)data;
|
||||
TCPEndpoint *endpoint = (TCPEndpoint *)data;
|
||||
|
||||
RecursiveLocker locker(connection->Lock());
|
||||
connection->_SendQueued(true);
|
||||
RecursiveLocker locker(endpoint->Lock());
|
||||
endpoint->_SendQueued(true);
|
||||
}
|
||||
|
||||
|
||||
/*static*/ void
|
||||
TCPEndpoint::_DelayedAcknowledgeTimer(struct net_timer *timer, void *data)
|
||||
{
|
||||
TCPEndpoint *connection = (TCPEndpoint *)data;
|
||||
TCPEndpoint *endpoint = (TCPEndpoint *)data;
|
||||
|
||||
RecursiveLocker locker(connection->Lock());
|
||||
connection->_SendQueued(true);
|
||||
RecursiveLocker locker(endpoint->Lock());
|
||||
endpoint->_SendQueued(true);
|
||||
}
|
||||
|
||||
|
||||
/*static*/ void
|
||||
TCPEndpoint::_TimeWaitTimer(struct net_timer *timer, void *data)
|
||||
{
|
||||
TCPEndpoint *connection = (TCPEndpoint *)data;
|
||||
TCPEndpoint *endpoint = (TCPEndpoint *)data;
|
||||
|
||||
RecursiveLocker locker(connection->Lock());
|
||||
gSocketModule->delete_socket(connection->socket);
|
||||
recursive_lock_lock(&endpoint->Lock());
|
||||
gSocketModule->delete_socket(endpoint->socket);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user