def ensure_single_instance(args, open_at): try: from calibre.utils.lock import singleinstance si = singleinstance(singleinstance_name) except Exception: import traceback error_dialog(None, _('Cannot start viewer'), _( 'Failed to start viewer, could not insure only a single instance of the viewer is running. Click "Show Details" for more information'), det_msg=traceback.format_exc(), show=True) raise SystemExit(1) if not si: if len(args) > 1: t = RC(print_error=True, socket_address=viewer_socket_address()) t.start() t.join(3.0) if t.is_alive() or t.conn is None: error_dialog(None, _('Connect to viewer failed'), _( 'Unable to connect to existing viewer window, try restarting the viewer.'), show=True) raise SystemExit(1) t.conn.send((os.path.abspath(args[1]), open_at)) t.conn.close() prints('Opened book in existing viewer instance') raise SystemExit(0) listener = create_listener() return listener
def build_pipe(print_error=True): t = RC(print_error=print_error) t.start() t.join(3.0) if t.is_alive(): cant_start() raise SystemExit(1) return t
def build_pipe(print_error=True): t = RC(print_error=print_error) t.start() t.join(3.0) if t.is_alive(): if iswindows: cant_start() else: f = os.path.expanduser('~/.calibre_calibre GUI.lock') cant_start(what=_('try deleting the file') + ': ' + f) raise SystemExit(1) return t
def build_pipe(print_error=True): t = RC(print_error=print_error) t.start() t.join(3.0) if t.is_alive(): if iswindows: cant_start() else: f = os.path.expanduser('~/.calibre_calibre GUI.lock') cant_start(what=_('try deleting the file')+': '+f) raise SystemExit(1) return t