summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/network/test_proactor.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/network/test_proactor.c b/tests/network/test_proactor.c
index 2d998cc..7bc1582 100644
--- a/tests/network/test_proactor.c
+++ b/tests/network/test_proactor.c
@@ -8,6 +8,7 @@
#include "errors.h"
#include "port/unused.h"
+#include "network/network.h"
#include <sys/types.h> /* for size_t */
@@ -45,6 +46,12 @@ wolf_asio_proc_p wolf_asio_proc_new( wolf_asio_completion_dispatcher_p completi
wolf_error_t wolf_asio_proc_free( wolf_asio_proc_p proc );
/*
+ * The main event loop of the asio processor. We can run it were we want, even with
+ * a dedicated pool of threads, if we like
+ */
+wolf_error_t wolf_asio_proc_event_loop( wolf_asio_proc_p proc );
+
+/*
* Asynchronous Operations:
* - the asynchronous operation must be performed without using
* the applications thread!
@@ -145,6 +152,11 @@ wolf_error_t wolf_asio_proc_accept( wolf_asio_proc_p proc,
return WOLF_OK;
}
+wolf_error_t wolf_asio_proc_event_loop( wolf_asio_proc_p proc ) {
+ WOLF_UNUSED( proc );
+ return WOLF_OK;
+}
+
wolf_asio_completion_dispatcher_p wolf_asio_completion_dispatcher_new( wolf_error_t *error ) {
wolf_asio_completion_dispatcher_p dispatcher;
@@ -193,9 +205,16 @@ int main( void ) {
return EXIT_FAILURE;
}
+ error = wolf_asio_proc_accept( proc, accept_handler );
+ if( error != WOLF_OK ) {
+ (void)wolf_asio_completion_dispatcher_free( dispatcher );
+ (void)wolf_asio_proc_free( proc );
+ return EXIT_FAILURE;
+ }
+
/* loop and wait for clients connecting */
while( 1 ) {
- error = wolf_asio_proc_accept( proc, accept_handler );
+ error = wolf_asio_proc_event_loop( proc );
if( error != WOLF_OK ) {
(void)wolf_asio_completion_dispatcher_free( dispatcher );
(void)wolf_asio_proc_free( proc );