[Uludag-commits] r10136 - trunk/pisi/pisi
svn-uludag at uludag.org.tr
svn-uludag at uludag.org.tr
3 Kas 2006 Cum 11:20:45 EET
Author: faik
Date: Fri Nov 3 11:20:45 2006
New Revision: 10136
Modified:
trunk/pisi/pisi/api.py
trunk/pisi/pisi/comariface.py
trunk/pisi/pisi/context.py
Log:
* YALI thread's don't like pisi's signal handling. Signal handling is
now optional from pisi.api.init()
* Also a missed "import comar" fix and some code cleanups.
Modified: trunk/pisi/pisi/api.py
=================================================================
--- trunk/pisi/pisi/api.py (original)
+++ trunk/pisi/pisi/api.py Fri Nov 3 11:20:45 2006
@@ -52,7 +52,8 @@
def init(database = True, write = True,
options = None, ui = None, comar = True,
stdout = None, stderr = None,
- comar_sockname = None):
+ comar_sockname = None,
+ signal_handling = True):
"""Initialize PiSi subsystem"""
# UI comes first
@@ -88,6 +89,9 @@
import pisi.config
ctx.config = pisi.config.Config(options)
+ if signal_handling:
+ ctx.sig = pisi.signalhandler.SignalHandler()
+
# TODO: this is definitely not dynamic beyond this point!
ctx.comar = comar and not ctx.config.get_option('ignore_comar')
# This is for YALI, used in comariface.py:make_com()
Modified: trunk/pisi/pisi/comariface.py
=================================================================
--- trunk/pisi/pisi/comariface.py (original)
+++ trunk/pisi/pisi/comariface.py Fri Nov 3 11:20:45 2006
@@ -12,6 +12,7 @@
import os
import time
+import select
import gettext
__trans = gettext.translation('pisi', fallback=True)
@@ -20,18 +21,15 @@
import pisi
import pisi.context as ctx
-
class Error(pisi.Error):
pass
+try:
+ import comar
+except ImportError:
+ raise Error(_("comar package is not fully installed"))
def make_com():
- try:
- import comar
- # FIXME: maybe we should reload if it is already imported
- except ImportError:
- raise Error(_("comar package is not fully installed"))
-
sockname = "/var/run/comar.socket"
# This is used by YALI
if ctx.comar_sockname:
@@ -50,7 +48,7 @@
def wait_comar():
# FIXME: this function is redundant, use make_com in wait_for_result
- import socket, time
+ import socket
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
timeout = 5
sockname = "/var/run/comar.socket"
@@ -70,6 +68,10 @@
while 1:
try:
reply = com.read_cmd()
+ except select.error:
+ if ctx.keyboard_interrupt_pending():
+ return
+ raise
except comar.LinkClosed:
# Comar postInstall does a "service comar restart" which cuts
# our precious communication link, so we waitsss
Modified: trunk/pisi/pisi/context.py
=================================================================
--- trunk/pisi/pisi/context.py (original)
+++ trunk/pisi/pisi/context.py Fri Nov 3 11:20:45 2006
@@ -18,7 +18,7 @@
import pisi.signalhandler
const = pisi.constants.Constants()
-sig = pisi.signalhandler.SignalHandler()
+sig = None
config = None
@@ -80,13 +80,13 @@
return proc(txn)
def disable_keyboard_interrupts():
- sig.disable_signal(signal.SIGINT)
+ sig and sig.disable_signal(signal.SIGINT)
def enable_keyboard_interrupts():
- sig.enable_signal(signal.SIGINT)
+ sig and sig.enable_signal(signal.SIGINT)
def keyboard_interrupt_disabled():
- return sig.signal_disabled(signal.SIGINT)
+ return sig and sig.signal_disabled(signal.SIGINT)
def keyboard_interrupt_pending():
- return sig.signal_pending(signal.SIGINT)
+ return sig and sig.signal_pending(signal.SIGINT)
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi