* is the caller's scheduler and the FSM will be run in the scheduler.
* If `schedule' is NULL this will call silc_schedule_get_global to try
* get global scheduler. Returns NULL on error or if system is out of
- * memory.
+ * memory and sets silc_errno.
*
* EXAMPLE
*
* then the thread will actually be executed in real thread, if platform
* supports them. The `thread_context' is delivered to every state
* function in the thread. Returns NULL on error or if the system is out
- * of memory.
+ * of memory and sets silc_errno.
*
* NOTES
*
* for the FSM thread. If you need scheduler in the real thread it is
* strongly recommended that you use the SilcSchedule that is allocated
* for the thread. You can retrieve the SilcSchedule from the thread
- * using silc_fsm_get_schedule function. Note that, the allocated
- * SilcSchedule will become invalid after the thread finishes.
+ * using silc_fsm_get_schedule function. The new scheduler is a child
+ * scheduler of the original scheduler used with `fsm'. Note that, the
+ * allocated SilcSchedule will become invalid after the thread finishes.
+ * Note also that the scheduler is automatically set as global scheduler
+ * in that thread by calling silc_schedule_set_global.
*
* If `real_thread' is FALSE the silc_fsm_get_schedule will return
* the SilcSchedule that was originally given to silc_fsm_alloc or