mirror of
https://github.com/markqvist/LXMF.git
synced 2026-04-27 22:25:40 +00:00
feat: Add external stamp generator support for Android
Add set_external_generator() function to LXStamper.py that allows platforms like Android to provide a native stamp generator callback. This bypasses Python multiprocessing which fails on Android due to lack of sem_open support and aggressive process killing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
39e398be65
commit
6646ca5234
1 changed files with 12 additions and 1 deletions
|
|
@ -15,6 +15,14 @@ PN_VALIDATION_POOL_MIN_SIZE = 256
|
|||
|
||||
active_jobs = {}
|
||||
|
||||
external_generator = None
|
||||
|
||||
def set_external_generator(generator):
|
||||
global external_generator
|
||||
external_generator = generator
|
||||
if generator is not None:
|
||||
RNS.log("External stamp generator registered", RNS.LOG_DEBUG)
|
||||
|
||||
if RNS.vendor.platformutils.is_linux(): multiprocessing.set_start_method("fork")
|
||||
|
||||
def stamp_workblock(material, expand_rounds=WORKBLOCK_EXPAND_ROUNDS):
|
||||
|
|
@ -98,7 +106,10 @@ def generate_stamp(message_id, stamp_cost, expand_rounds=WORKBLOCK_EXPAND_ROUNDS
|
|||
rounds = 0
|
||||
value = 0
|
||||
|
||||
if RNS.vendor.platformutils.is_windows() or RNS.vendor.platformutils.is_darwin(): stamp, rounds = job_simple(stamp_cost, workblock, message_id)
|
||||
if external_generator is not None:
|
||||
RNS.log("Using external stamp generator", RNS.LOG_DEBUG)
|
||||
stamp, rounds = external_generator(workblock, stamp_cost)
|
||||
elif RNS.vendor.platformutils.is_windows() or RNS.vendor.platformutils.is_darwin(): stamp, rounds = job_simple(stamp_cost, workblock, message_id)
|
||||
elif RNS.vendor.platformutils.is_android(): stamp, rounds = job_android(stamp_cost, workblock, message_id)
|
||||
else: stamp, rounds = job_linux(stamp_cost, workblock, message_id)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue