mirror of
https://github.com/fHDHR/fHDHR_NextPVR.git
synced 2025-12-06 05:36:59 -05:00
Add experimental threading method option for Windows Users
This commit is contained in:
parent
08e663113b
commit
9c59328fca
@ -1,6 +1,7 @@
|
||||
[main]
|
||||
uuid =
|
||||
cache_dir =
|
||||
thread_method = multiprocessing
|
||||
|
||||
[fhdhr]
|
||||
address = 0.0.0.0
|
||||
|
||||
@ -3,6 +3,7 @@ import sys
|
||||
import argparse
|
||||
import time
|
||||
import multiprocessing
|
||||
import threading
|
||||
import platform
|
||||
|
||||
from fHDHR import fHDHR_VERSION, fHDHR_OBJ
|
||||
@ -42,25 +43,33 @@ def run(settings, logger, db):
|
||||
fhdhr = fHDHR_OBJ(settings, logger, db)
|
||||
fhdhrweb = fHDHR_HTTP_Server(fhdhr)
|
||||
|
||||
# Ensure spawn on Windows instead of fork
|
||||
if settings.dict["main"]["opersystem"] in ["Windows"]:
|
||||
multiprocessing.set_start_method('spawn')
|
||||
|
||||
try:
|
||||
|
||||
print("HTTP Server Starting")
|
||||
fhdhr_web = multiprocessing.Process(target=fhdhrweb.run)
|
||||
fhdhr_web.start()
|
||||
if settings.dict["main"]["thread_method"] in ["multiprocessing"]:
|
||||
fhdhr_web = multiprocessing.Process(target=fhdhrweb.run)
|
||||
elif settings.dict["main"]["thread_method"] in ["threading"]:
|
||||
fhdhr_web = threading.Thread(target=fhdhrweb.run)
|
||||
if settings.dict["main"]["thread_method"] in ["multiprocessing", "threading"]:
|
||||
fhdhr_web.start()
|
||||
|
||||
if settings.dict["fhdhr"]["discovery_address"]:
|
||||
print("SSDP Server Starting")
|
||||
fhdhr_ssdp = multiprocessing.Process(target=fhdhr.device.ssdp.run)
|
||||
fhdhr_ssdp.start()
|
||||
if settings.dict["main"]["thread_method"] in ["multiprocessing"]:
|
||||
fhdhr_ssdp = multiprocessing.Process(target=fhdhr.device.ssdp.run)
|
||||
elif settings.dict["main"]["thread_method"] in ["threading"]:
|
||||
fhdhr_ssdp = threading.Thread(target=fhdhr.device.ssdp.run)
|
||||
if settings.dict["main"]["thread_method"] in ["multiprocessing", "threading"]:
|
||||
fhdhr_ssdp.start()
|
||||
|
||||
if settings.dict["epg"]["method"]:
|
||||
print("EPG Update Starting")
|
||||
fhdhr_epg = multiprocessing.Process(target=fhdhr.device.epg.run)
|
||||
fhdhr_epg.start()
|
||||
if settings.dict["main"]["thread_method"] in ["multiprocessing"]:
|
||||
fhdhr_epg = multiprocessing.Process(target=fhdhr.device.epg.run)
|
||||
elif settings.dict["main"]["thread_method"] in ["threading"]:
|
||||
fhdhr_epg = threading.Thread(target=fhdhr.device.epg.run)
|
||||
if settings.dict["main"]["thread_method"] in ["multiprocessing", "threading"]:
|
||||
fhdhr_epg.start()
|
||||
|
||||
# wait forever
|
||||
while True:
|
||||
|
||||
@ -89,6 +89,9 @@ class Config():
|
||||
|
||||
def config_verification(self):
|
||||
|
||||
if self.dict["main"]["thread_method"] not in ["threading", "multiprocessing"]:
|
||||
raise fHDHR.exceptions.ConfigurationError("Invalid Threading Method. Exiting...")
|
||||
|
||||
if self.dict["main"]["required"]:
|
||||
required_missing = []
|
||||
if isinstance(self.dict["main"]["required"], str):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user