added pause function

This commit is contained in:
k4yt3x
2022-03-21 03:28:19 +00:00
parent fa485b6cdd
commit 8ba56e58c2
5 changed files with 138 additions and 59 deletions

View File

@@ -19,15 +19,15 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
Name: Interpolator
Author: K4YT3X
Date Created: May 27, 2021
Last Modified: February 28, 2022
Last Modified: March 20, 2022
"""
import multiprocessing
import multiprocessing.managers
import multiprocessing.sharedctypes
import queue
import signal
import time
from multiprocessing.managers import ListProxy
from multiprocessing.sharedctypes import Synchronized
from loguru import logger
from PIL import ImageChops, ImageStat
@@ -40,12 +40,14 @@ class Interpolator(multiprocessing.Process):
def __init__(
self,
processing_queue: multiprocessing.Queue,
processed_frames: multiprocessing.managers.ListProxy,
processed_frames: ListProxy,
pause: Synchronized,
) -> None:
multiprocessing.Process.__init__(self)
self.running = False
self.processing_queue = processing_queue
self.processed_frames = processed_frames
self.pause = pause
signal.signal(signal.SIGTERM, self._stop)
@@ -57,6 +59,11 @@ class Interpolator(multiprocessing.Process):
processor_objects = {}
while self.running:
try:
# pause if pause flag is set
if self.pause.value is True:
time.sleep(0.1)
continue
try:
# get new job from queue
(