+#if defined(SILC_DEBUG)
+/* Print schedule statistics to stdout */
+
+void silc_schedule_stats(SilcSchedule schedule)
+{
+ SilcTaskFd ftask;
+ fprintf(stdout, "Schedule %p statistics:\n\n", schedule);
+ fprintf(stdout, "Num FD tasks: %lu (%lu bytes allocated)\n",
+ silc_hash_table_count(schedule->fd_queue),
+ sizeof(*ftask) * silc_hash_table_count(schedule->fd_queue));
+ fprintf(stdout, "Num Timeout tasks: %d (%d bytes allocated)\n",
+ silc_list_count(schedule->timeout_queue),
+ sizeof(struct SilcTaskTimeoutStruct) *
+ silc_list_count(schedule->timeout_queue));
+ fprintf(stdout, "Num Timeout freelist: %d (%d bytes allocated)\n",
+ silc_list_count(schedule->free_tasks),
+ sizeof(struct SilcTaskTimeoutStruct) *
+ silc_list_count(schedule->free_tasks));
+}
+#endif /* SILC_DEBUG */