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