История изменений
Исправление KivApple, (текущая версия) :
Удалил из сообщения platformData. Теперь имена стали короче, а логика осталась прежней.
Си не умеет к классы и namespace. Конечно, я могу запихнуть данные планировщика в какую-нибудь структуру, но какая разница между scheduler.maxRunningPriority и threadMaxRunningPriority? Называть переменные односложно, так что потеряется их смысл, я не хочу. Я не из тех программистов, у которых куча переменных i, j, k, m, n и т. д., а потом какая-то чёрная магия. Однобуквенные имена я использую только в for.
Копипасты работы со спискам нет. Добавление в двусвязанный список осуществляется только в schedulerResumeTask, а удаление только в schedulerSuspendTask. Также в schedulerResumeTask осуществляется добавление в односвязанный список threadResumeQueue, а удаление в schedulerResumeDelayedTasks. В каждом случае свой алгоритм (очевидно, что работа с двусвязаным и односвязаным списком отличается, также как отличаются операции добавления и удаления).
Исправление KivApple, :
Удалил из сообщения platformData. Теперь имена стали короче.
Си не умеет к классы и namespace. Конечно, я могу запихнуть данные планировщика в какую-нибудь структуру, но какая разница между scheduler.maxRunningPriority и threadMaxRunningPriority? Называть переменные односложно, так что потеряется их смысл, я не хочу. Я не из тех программистов, у которых куча переменных i, j, k, m, n и т. д., а потом какая-то чёрная магия. Однобуквенные имена я использую только в for.
Копипасты работы со спискам нет. Добавление в двусвязанный список осуществляется только в schedulerResumeTask, а удаление только в schedulerSuspendTask. Также в schedulerResumeTask осуществляется добавление в односвязанный список threadResumeQueue, а удаление в schedulerResumeDelayedTasks. В каждом случае свой алгоритм (очевидно, что работа с двусвязаным и односвязаным списком отличается).
Исходная версия KivApple, :
Удалил из сообщения platformData. Теперь имена стали короче.
Си не умеет к классы и namespace. Конечно, я могу запихнуть данные планировщика в какую-нибудь структуру, но какая разница между scheduler.maxRunningPriority и threadMaxRunningPriority? Называть переменные односложно, так что потеряется их смысл, я не хочу. Я не из тех программистов, у которых куча переменных i, j, k, m, n и т. д., а потом какая-то чёрная магия. Однобуквенные имена я использую только в for.