/* SilcAsyncOperation tests */
-#include "silcincludes.h"
+#include "silc.h"
#include "silcfsm.h"
#include "silcasync.h"
typedef struct {
SilcFSM fsm;
- SilcFSMSemaStruct sema;
+ SilcFSMEventStruct sema;
SilcAsyncOperation op;
Callback cb;
void *cb_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);
}
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"));
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);