Add initial multithreading support and example
This is the basic support for doing i/o in a separate worker thread. It is still not threads safe but a start. Now we need to protect all variables such as outqueue, waitpdu and friends. Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
12
lib/pdu.c
12
lib/pdu.c
@@ -940,7 +940,17 @@ iscsi_timeout_scan(struct iscsi_context *iscsi)
|
||||
int
|
||||
iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu)
|
||||
{
|
||||
return iscsi->drv->queue_pdu(iscsi, pdu);
|
||||
int ret;
|
||||
|
||||
#ifdef HAVE_MULTITHREADING
|
||||
iscsi_mt_mutex_lock(&iscsi->iscsi_mutex);
|
||||
#endif /* HAVE_MULTITHREADING */
|
||||
ret = iscsi->drv->queue_pdu(iscsi, pdu);
|
||||
#ifdef HAVE_MULTITHREADING
|
||||
iscsi_mt_mutex_unlock(&iscsi->iscsi_mutex);
|
||||
#endif /* HAVE_MULTITHREADING */
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user