Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Исключить IScheduler и (возможно) IFutureTask из базовых ("core") типов #20

Open
DragonFrai opened this issue Nov 9, 2023 · 0 comments
Labels
futures Assigned with futures module

Comments

@DragonFrai
Copy link
Owner

API планировщика может быть весьма сложным. В том числе блокирующий спаун, настройка параметров потока для запуска или, в конце концов, приоритет Future. В связи с этим предоставляение скромного интерфейса IScheduler как "core" типа является сомнительным.

Вместе с ним таким свойством обладает и IFutureTask. Хотя в отличие от IScheduler, он намного более прост в том смысле, что лишь универсально "поднимает" низкоуровневый API Future в пользовательское пространство, не делая сильных произвольных предположений. Поэтому его исключение из "core" типов не так сильно напрашивается, или, по меньшей мере должно быть менее сильным.


Альтернативным вариантом будет оставить все как есть. В конце концов можно расширить интерфейс IScheduler, добавив методы с гибкой настройкой и оставив метод запуска Future с настройками "по умолчанию". И, хотя, в случае настройки приоритетов это не кажется чем-то страшным, различиям в запуске Future с блокирующими операциями или без, следует быть явными настолько, насколько это возможно.

@DragonFrai DragonFrai added the futures Assigned with futures module label Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
futures Assigned with futures module
Projects
None yet
Development

No branches or pull requests

1 participant