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:
Ronnie Sahlberg
2025-03-25 12:42:31 +10:00
parent cb44ad4e26
commit 3c48aea225
10 changed files with 492 additions and 95 deletions

View File

@@ -1702,6 +1702,18 @@ iscsi_set_fd_dup_cb(struct iscsi_context *iscsi,
void (*cb)(struct iscsi_context *iscsi, void *opaque),
void *opaque);
/*
* MULTITHREADING
*/
/*
* This function starts a separate service thread for multithreading support.
*/
EXTERN int iscsi_mt_service_thread_start(struct iscsi_context *iscsi);
/*
* Shutdown multithreading support.
*/
EXTERN void iscsi_mt_service_thread_stop(struct iscsi_context *iscsi);
#ifdef __cplusplus
}
#endif