fix: Locks verbosity

This commit is contained in:
Piotr Dec 2025-12-10 21:47:56 +01:00
parent 846f22b8e1
commit c937893fbd
Signed by: stawros
GPG key ID: 74B18A3F0F1E99C0
2 changed files with 8 additions and 3 deletions

View file

@ -1,6 +1,6 @@
logging: logging:
level: "TRACE" level: "TRACE"
path: "../../logs/karl.log" path: "logs/karl.log"
app: app:
host: "127.0.0.1" host: "127.0.0.1"
port: 8081 port: 8081

View file

@ -1,7 +1,8 @@
import logging import logging
from collections import deque from collections import deque
from multiprocessing import Process, Lock from multiprocessing import Process
from pathlib import Path from pathlib import Path
from threading import RLock
from typing import Annotated from typing import Annotated
from injectable import injectable, Autowired, autowired from injectable import injectable, Autowired, autowired
@ -71,12 +72,13 @@ class Woodpecker:
self._docker = DockerService() self._docker = DockerService()
self._runner: WoodpeckerRunner | None = None self._runner: WoodpeckerRunner | None = None
self._pending = deque() self._pending = deque()
self._lock = Lock() self._lock = RLock()
logger.info("Woodpecker initialized.") logger.info("Woodpecker initialized.")
def on_ci_event(self, event: WoodpeckerEvent): def on_ci_event(self, event: WoodpeckerEvent):
logger.info(f"Received event: {event}") logger.info(f"Received event: {event}")
with self._lock: with self._lock:
logger.debug("Lock acquired [on-ci-event]")
if len(self._pending) > 0 or self._runner is not None: if len(self._pending) > 0 or self._runner is not None:
self._pending.append(event) self._pending.append(event)
return return
@ -84,6 +86,7 @@ class Woodpecker:
def _start_runner(self, event: WoodpeckerEvent): def _start_runner(self, event: WoodpeckerEvent):
with self._lock: with self._lock:
logger.debug("Lock acquired [start-runner]")
self._runner = WoodpeckerRunner(self._git, self._docker, self._mo, self._runner = WoodpeckerRunner(self._git, self._docker, self._mo,
self._on_runner_completed, self._on_runner_error) self._on_runner_completed, self._on_runner_error)
self._runner.process_event(event) self._runner.process_event(event)
@ -92,6 +95,7 @@ class Woodpecker:
logger.info("Runner completed.") logger.info("Runner completed.")
self._runner.join() self._runner.join()
with self._lock: with self._lock:
logger.debug("Lock acquired [on-runner-completed]")
self._runner = None self._runner = None
if len(self._pending) > 0: if len(self._pending) > 0:
event = self._pending.popleft() event = self._pending.popleft()
@ -101,6 +105,7 @@ class Woodpecker:
logger.error(f"Runner error: {t}", exc_info=True) logger.error(f"Runner error: {t}", exc_info=True)
self._runner.join() self._runner.join()
with self._lock: with self._lock:
logger.debug("Lock acquired [on-runner-error]")
self._runner = None self._runner = None
if len(self._pending) > 0: if len(self._pending) > 0:
event = self._pending.popleft() event = self._pending.popleft()