void *destructor_context,
SilcSchedule schedule)
{
- if (!schedule)
+ if (!schedule) {
+ silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
return FALSE;
+ }
fsm->fsm_context = fsm_context;
fsm->state_context = NULL;
SILC_LOG_DEBUG(("Initializing new thread %p (%s)",
thread, real_thread ? "real" : "FSM"));
- SILC_ASSERT(!fsm->thread);
+ SILC_VERIFY(!fsm->thread);
thread->fsm_context = thread_context;
thread->state_context = NULL;
{
SilcFSM f = fsm;
- SILC_ASSERT(!f->finished);
+ SILC_VERIFY(!f->finished);
f->started = FALSE;
f->finished = TRUE;
SilcFSM silc_fsm_get_machine(SilcFSMThread thread)
{
- SILC_ASSERT(thread->thread);
+ SILC_VERIFY(thread->thread);
return (SilcFSM)thread->u.t.fsm;
}
{
SilcFSM t = thread;
- SILC_ASSERT(t->thread);
+ SILC_VERIFY(t->thread);
t->u.t.event = silc_fsm_event_alloc(t->u.t.fsm);
if (!t->u.t.event)
} else {
/* Machine must not have active threads */
- assert(silc_atomic_get_int32(&fsm->u.m.threads) == 0);
+ SILC_VERIFY(silc_atomic_get_int32(&fsm->u.m.threads) == 0);
if (fsm->u.m.lock) {
silc_mutex_free(fsm->u.m.lock);
void silc_fsm_event_init(SilcFSMEvent event, SilcFSM fsm)
{
SILC_LOG_DEBUG(("Initializing event %p", event));
- SILC_ASSERT(!fsm->thread);
+ SILC_VERIFY(!fsm->thread);
memset(event, 0, sizeof(*event));
event->fsm = fsm;
event->refcnt = 0;