summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2009-04-26 20:13:19 +0200
committerAndreas Baumann <abaumann@yahoo.com>2009-04-26 20:13:19 +0200
commit2e54086d8db842b65e9c895951fb8828a5c9b518 (patch)
treedcd8a7e7ceb3e2d0bbc7ee2e040e069f724f7cbc /tests
parent17a67d9faefbff1cc7e05b82ea1981f5e14ace2c (diff)
downloadwolfbones-2e54086d8db842b65e9c895951fb8828a5c9b518.tar.gz
wolfbones-2e54086d8db842b65e9c895951fb8828a5c9b518.tar.bz2
more tests on proactor pattern
Diffstat (limited to 'tests')
-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 );