[scribus] Multiple instances of Scribus
Craig Ringer
craig at postnewspapers.com.au
Wed Apr 30 17:33:29 CEST 2008
Gustavo Homem wrote:
> Hi,
>
> Running Jumping late on this thread I'd like to point the fact that when a
> user double clicks a .sla file a new instance of Scribus will allways be
> launched, regardless of whether or not Scribus was already running.
>
> This is, to me, an usability problem and the opposite of what users expect
> from current software.
It certainly differs from how other apps in the same broad domain (GIMP,
OpenOffice, Quark, InDesign, etc) work. It's also costly with something
as memory-hungry as Scribus.
> In this regard I think Scribus should behave as the other common desktop
> aplications where the running instance is reused for when more documents are
> opened (See Adobe Reader, Firefox, Kaffeine, etc).
I generally agree. Single-instance-per-user seems to be surprisingly
hard to get right, though. I'm always having to kill half-exited firefox
and thunderbird instances off the thin clients at work then manually
remove their lock files.
OpenOffice on some of the Windows machines likes to die while leaving a
process running, too, so a new instance can't tell the lockfile is
stale. This leaves users wondering why nothing happens when they try to
open a document - because the new OO.o instance signals the zombie one
to open the file, then exits, but the zombie one never acts on the request.
As Scribus is single-threaded and single-process it's probably not going
to have too much trouble with these issues. That has its own issues too,
though. Scribus often enters states where it doesn't return to the
normal event loop for long periods. It would be unable to process queued
messages (like "open this file") while in those states, so if Scribus is
busy doing something opening a file might take quite some time with no
visible feedback.
If single-instance-per-user is attempted, it's important to think about:
- Multiple users per machine (win32 "Fast User Switching", multiple X
servers on UNIX, X11 thin client terminals, etc)
- Handling of an instance that is unusable and broken but has not exited.
- Handling of an instance that is working, but busy and unable to open a
file for an unknown period of time.
- Handling of stale lockfiles and other state caused by a sudden program
crash, hard system reboot, etc.
--
Craig Ringer
More information about the scribus
mailing list