/* 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;
- bool aborted;
+ SilcBool aborted;
} *Foo;
SILC_FSM_STATE(test_st_start);
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);
int main(int argc, char **argv)
{
- bool success = FALSE;
+ SilcBool success = FALSE;
SilcFSM fsm;
Foo f;
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)