- * for the FSM thread. This is done because the SilcSchedule that the
- * `fsm' use cannot be used in the thread. This is limitation in the
- * SilcSchedule implementation. 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.
- *
- * You may still however use the original SilcSchedule if you wish. In
- * this case note its limitation: you may only add and/or remove tasks,
- * tasks cannot be executed in the thread. You will need to deliver the
- * original SilcSchedule to the thread in the `thread_context' if you wish
- * to use it.
- *
- * If `real_thread' is FALSE then no limitations on what can be run in
- * the thread exist. In this case silc_fsm_get_schedule will return
+ * 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. 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