[pygtk] centralized multiple instances of a pygtk app
Pietro Battiston
me at pietrobattiston.it
Fri Apr 1 02:27:15 WST 2011
Il giorno gio, 31/03/2011 alle 20.01 +0200, Giuseppe Penone ha scritto:
>
> (Assuming that indeed there's no way of using sockets in a
> non-blocking
> fashion - I'm totally ignorant about that) maybe having a
> little process
> created with multiprocessing would be simpler & more portable,
> for you,
> than using threading? I guess a single one is sufficient, so
> the
> overhead shouldn't be significant, even on Windows. Then, at
> every
> iteration of the main loop, the main process could check, from
> a shared
> Value (or Array), if there's something to open.
>
> (untested, sorry if I wrote something stupid)
>
> Hi Pietro,
> the problem of having a single and independent process dedicated to
> the job of server is that the server would not be able to rise a
> minimized/hidden window as consequence of the situation "a new file
> open starts (user double click) unaware that the same file is already
> opened".
The server should not, that would be the job of the main process...
User: "Hey, program, open that file"
Main process1: starts, spawns the server through the multiprocessing
module
Server1: "Hey, main process, there is no open instance, have fun"
Main process1: "thanks", opens the file in a new window
later...
User: "Hey, program, open that file"
Main process2: starts, spawns the server through the multiprocessing
module
Server2: "hey, Main process2, there is an already open instance!"
Main process2: "OK, tell it to open that file!"
Server2: "Server1, could you please tell you friend Main process to open
that file?"
Server1: "Sure, Server2!"
(Main process2 & Server2 exit)
Server1: "Hey, Main process2, seems like the user wants to open that
file"
Main process1: as it does in every iteration of the main loop, scans for
new info from the Server1, finds a new filename to open, remembers it's
already opened in some window, rises that window.
(again, maybe I just missed something trivial, but at least that should
be able to avoid any additional misunderstandings)
(notice that _in any case_, with gtk, it is sane to play with GUI only
from one thread/process)
Pietro
More information about the pygtk
mailing list