Какие факторы определяют подходящее значение для settingsFork в приложении Warp?
В приложениях Warp settingsFork
опция доступна для типа данных Настройки. Это позволяет выбрать другую модель вилки. Когда это должно быть установлено на что-то, отличное от значения по умолчанию (void . forkIOWithUnmask
)? Какие факторы следует учитывать при принятии этого решения? (IO против CPU / использование FFI, например).
1 ответ
Вы можете использовать forkOS
создать связанный поток, если вы собираетесь манипулировать локальным состоянием потока (поскольку несвязанные "потоки" в Haskell могут работать в разных потоках ОС, и, следовательно, разрушить саму идею использования локального хранилища потоков). Документация упоминает OpenGL в качестве возможного примера. В целом, мне трудно придумать ситуацию, когда вам не нужна реализация по умолчанию, которая использует преимущества встроенной системы зеленых потоков. Принято считать, что планировщик GHC трудно победить.