Could you please raise an issue at https://github.com/darktable-org/lua-scripts/issues/new
Thanks, Bill On Sun, Feb 6, 2022 at 12:21 PM Christian Birzer < christ...@christianbirzer.de> wrote: > Hi, > > I'm currently writing (or, trying to write 🙄) a lua script that will > generate the preview cache for selected images (without leaving dt to start > the external program...). Basically, it seems to work but I see two strange > things that I don't understand right now. > > First, the essential parts of my script: > > > local function stop_job( job ) > job.valid = false > end > local function create_previews() > job = dt.gui.create_job( "generating previews", true, stop_job ) > local images = dt.gui.action_images > for i,image in pairs(images) do > if job.valid then > image:generate_cache( true, 0, 8 ) > job.percent = i / #images > dt.control.sleep( 1 ) -- without this, the job cannot be aborted > else > break > end > end > if job.valid then -- without this, dt crashes with an exception in > dt_pthread_mutex_destroy() after aborting the job > job.valid = false > end > end > > the create_previews function will be called from a registered action. > > My two questions: > > 1. Without the sleep() I cannot stop the running job. After starting the > job, the progress bar is shown and when I hit the 'X' nothing happens until > the for loop processed all images. Then the stop_job() is called. With the > sleep the stop_job is called after processing the current image and the job > terminates as desired. > > 2. When I set the job.valid to false after the loop it only works as long > as the job is not terminated via the stop_job function. As this already > sets the job to invalid I guess it is already destroyed and in the second > job.valid=false dt crashes with an exception in dt_pthread_mutex_destroy. > > Both phenomena are completely understandable, but: I see a lot of scripts > that execute job.valid=false twice (when aborted) and seem to rely on > stopping without a call to sleep(). Hmmm. What I'm missing here? > > I hope you can clarify this, > thanks a lot! > Christian > > -- > Christian > birzerchrist...@christianbirzer.dewww.christianbirzer.dewww.500px.com/ChristianBirzerwww.flickr.com/ChristianBirzerwww.facebook.com/Birzer.Christianwww.instagram.com/birzer.christian > > > ___________________________________________________________________________ > darktable developer mailing list to unsubscribe send a mail to > darktable-dev+unsubscr...@lists.darktable.org > ___________________________________________________________________________ darktable developer mailing list to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org