Write the PDU directly to the socket if the socket is idle.
Signed-off-by: sahlberg <sahlberg@r10-0-1.rocky10.sahlberg>
This commit is contained in:
committed by
Ronnie Sahlberg
parent
c92e84c9bc
commit
a8c3920ab8
@@ -42,6 +42,7 @@ struct scsi_iovec;
|
|||||||
#define LIBISCSI_FEATURE_IOVECTOR (1)
|
#define LIBISCSI_FEATURE_IOVECTOR (1)
|
||||||
#define LIBISCSI_FEATURE_NOP_COUNTER (1)
|
#define LIBISCSI_FEATURE_NOP_COUNTER (1)
|
||||||
#define LIBISCSI_FEATURE_ISER (1)
|
#define LIBISCSI_FEATURE_ISER (1)
|
||||||
|
#define LIBISCSI_IMMEDIATE_SOCKET_WRITE (1)
|
||||||
|
|
||||||
#define MAX_STRING_SIZE (255)
|
#define MAX_STRING_SIZE (255)
|
||||||
/* RFC 3720 Section 3.2.6.1 */
|
/* RFC 3720 Section 3.2.6.1 */
|
||||||
|
|||||||
11
lib/socket.c
11
lib/socket.c
@@ -150,15 +150,20 @@ iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu)
|
|||||||
finished:
|
finished:
|
||||||
iscsi_mt_spin_unlock(&iscsi->iscsi_lock);
|
iscsi_mt_spin_unlock(&iscsi->iscsi_lock);
|
||||||
|
|
||||||
/* TODO QQQ need to immediately send for the non multithreading case too
|
|
||||||
* and for the Windows API too */
|
|
||||||
#if defined(HAVE_MULTITHREADING) && defined(HAVE_PTHREAD)
|
#if defined(HAVE_MULTITHREADING) && defined(HAVE_PTHREAD)
|
||||||
if(iscsi->multithreading_enabled) {
|
if(iscsi->multithreading_enabled) {
|
||||||
if (current == NULL && pdu == iscsi->outqueue) {
|
if (current == NULL && pdu == iscsi->outqueue) {
|
||||||
pthread_kill(iscsi->service_thread, SIGUSR1);
|
pthread_kill(iscsi->service_thread, SIGUSR1);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
#endif
|
||||||
|
if (iscsi->outqueue == pdu) {
|
||||||
|
iscsi->drv->service(iscsi, POLLOUT);
|
||||||
|
}
|
||||||
|
#if defined(HAVE_MULTITHREADING) && defined(HAVE_PTHREAD)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user