Added SILC Thread Queue API
[silc.git] / lib / silcutil / tests / test_silcasync.c
index 0e11b868362517491b9f14352a7e227d2cb1ac97..92ff6669157fbb2cd22aa91fec59c3c5f6751d41 100644 (file)
@@ -1,6 +1,6 @@
 /* SilcAsyncOperation tests */
 
-#include "silcincludes.h"
+#include "silc.h"
 #include "silcfsm.h"
 #include "silcasync.h"
 
@@ -10,7 +10,7 @@ SilcSchedule schedule;
 
 typedef struct {
   SilcFSM fsm;
-  SilcFSMSemaStruct sema;
+  SilcFSMEventStruct sema;
   SilcAsyncOperation op;
   Callback cb;
   void *cb_context;
@@ -59,7 +59,7 @@ static void async_call_cb(void *context)
   Foo f = context;
   SILC_LOG_DEBUG(("*******Callback, signal and continue to next state"));
   f->op = NULL;
-  SILC_FSM_SEMA_POST(&f->sema);
+  SILC_FSM_EVENT_SIGNAL(&f->sema);
   SILC_FSM_CALL_CONTINUE(f->fsm);
 }
 
@@ -69,7 +69,7 @@ SILC_FSM_STATE(test_st_start)
 
   SILC_LOG_DEBUG(("test_st_start"));
 
-  silc_fsm_sema_init(&f->sema, fsm, 0);
+  silc_fsm_event_init(&f->sema, fsm);
 
   /** Wait async callback */
   SILC_LOG_DEBUG(("Call async call"));
@@ -80,14 +80,17 @@ SILC_FSM_STATE(test_st_start)
 SILC_FSM_STATE(test_st_second)
 {
   Foo f = fsm_context;
+  SilcBool timedout;
 
   SILC_LOG_DEBUG(("test_st_second"));
 
-  SILC_FSM_SEMA_TIMEDWAIT(&f->sema, 0, 1);
+  SILC_FSM_EVENT_TIMEDWAIT(&f->sema, 0, 1, &timedout);
 
-  SILC_LOG_DEBUG(("Sema timedout, aborting async operation"));
-  if (f->op)
-    silc_async_abort(f->op, NULL, NULL);
+  if (timedout == TRUE) {
+    SILC_LOG_DEBUG(("Sema timedout, aborting async operation"));
+    if (f->op)
+      silc_async_abort(f->op, NULL, NULL);
+  }
 
   /** Finish */
   silc_fsm_next_later(fsm, test_st_finish, 2, 0);
@@ -119,11 +122,11 @@ int main(int argc, char **argv)
   if (argc > 1 && !strcmp(argv[1], "-d")) {
     silc_log_debug(TRUE);
     silc_log_debug_hexdump(TRUE);
-    silc_log_set_debug_string("*async*");
+    silc_log_set_debug_string("*async*,*errno*");
   }
 
   SILC_LOG_DEBUG(("Allocating scheduler"));
-  schedule = silc_schedule_init(0, NULL);
+  schedule = silc_schedule_init(0, NULL, NULL);
 
   f = silc_calloc(1, sizeof(*f));
   if (!f)