-
Notifications
You must be signed in to change notification settings - Fork 896
[MAINT] Rework queuing functionality around multiplexer and snd/rcv queues #3164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
… to emulate blocking connect
…or in-muxer list). Added in-muxer socket list. Fixed tests to close all sockets. Tests socket complete wipeout.
@@ -11255,7 +11096,7 @@ | |||
// XXX Make this function return EConnectStatus enum type (extend if needed), | |||
// and this will be directly passed to the caller. | |||
|
|||
// [[using locked(m_pRcvQueue->m_LSLock)]]; | |||
// [[using locked(m_RcvQueue.m_LSLock)]]; |
Check notice
Code scanning / CodeQL
Commented-out code Note
/// Remove UDT instance from the list. | ||
/// @param [in] u pointer to the UDT instance | ||
void remove(const CUDT* u);// EXCLUDES(m_ListLock); | ||
void remove(const CUDT* u); | ||
void remove(CSNode* u);// EXCLUDES(m_ListLock); |
Check notice
Code scanning / CodeQL
Commented-out code Note
/* | ||
* XXX TEMPTING, but this breaks the rule that a socket moved to | ||
* the dead region may still send out packets, if there is any left. | ||
|
||
CUDTUnited::SocketKeeper sk (CUDT::uglobal(), u->id()); | ||
if (!sk.socket) | ||
{ | ||
HLOGC(qslog.Debug, log << "Socket to be processed was deleted in the meantime, not packing"); | ||
continue; | ||
} | ||
*/ |
Check notice
Code scanning / CodeQL
Commented-out code Note
srtcore/queue.cpp
Outdated
/* | ||
CUDTUnited::SocketKeeper sk (CUDT::uglobal(), i->id); | ||
if (!sk.socket) | ||
{ | ||
// Socket deleted already, so stop this and proceed to the next loop. | ||
LOGC(cnlog.Error, log << "updateConnStatus: IPE: socket @" << i->id << " already closed, proceed to only removal from lists"); | ||
toRemove.push_back(*i); | ||
continue; | ||
} | ||
|
||
*/ |
Check notice
Code scanning / CodeQL
Commented-out code Note
The aim of this changeset is to rework the queuing of sent and received packets to allow more flexible send scheduling.
m_SendBlockCond
CV. This CV has been used because it's not used at the time when the connection is not yet established and it corresponds with the rule that the epoll OUT event is used as a signal for connection readiness.srt_sendmsg2
call as the sending time.Further changes embrace: update the tests and testing apps by fixing some problems connected to too early socket closing.