Author: kmachalkova
Date: Tue Jan 29 15:46:34 2008
New Revision: 43971
URL: http://svn.opensuse.org/viewcvs/yast?rev=43971&view=rev
Log:
Moved busy indicator update handling into idleLoop, do not use
signals (ncurses and malloc are not signal-safe) (#355562)
Modified:
trunk/ncurses/src/NCBusyIndicator.cc
trunk/ncurses/src/YNCursesUI.cc
Modified: trunk/ncurses/src/NCBusyIndicator.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses/src/NCBusyIndicator.cc?rev=43971&r1=43970&r2=43971&view=diff
==============================================================================
--- trunk/ncurses/src/NCBusyIndicator.cc (original)
+++ trunk/ncurses/src/NCBusyIndicator.cc Tue Jan 29 15:46:34 2008
@@ -50,8 +50,9 @@
struct itimerval interval;
NCBusyIndicator* NCBusyIndicatorObject;
+#if 0
void NCBusyIndicatorHandlerWrapper(int sig_num);
-
+#endif
///////////////////////////////////////////////////////////////////
//
@@ -86,10 +87,12 @@
_timer_divisor = (double) REPAINT_INTERVAL / (double) timeout;
_timer_progress=0;
+#if 0
signal(SIGALRM, NCBusyIndicatorHandlerWrapper);
interval.it_value.tv_sec=0;
interval.it_value.tv_usec=REPAINT_INTERVAL * 1000;
setitimer(ITIMER_REAL, &interval, NULL);
+#endif
}
///////////////////////////////////////////////////////////////////
@@ -102,7 +105,7 @@
//
NCBusyIndicator::~NCBusyIndicator()
{
- signal(SIGALRM, SIG_IGN);
+ NCBusyIndicatorObject = NULL;
delete _lwin;
delete _twin;
WIDDBG << endl;
@@ -248,9 +251,12 @@
_alive=false;
}
update();
+
+ #if 0
interval.it_value.tv_sec=0;
interval.it_value.tv_usec=REPAINT_INTERVAL * 1000;
setitimer(ITIMER_REAL, &interval, NULL);
+ #endif
}
@@ -262,12 +268,14 @@
//
// DESCRIPTION : static wrapper for member function handler
//
+#if 0
void NCBusyIndicatorHandlerWrapper(int sig_num)
{
signal(SIGALRM, SIG_IGN);
NCBusyIndicatorObject->handler(sig_num);
signal(SIGALRM, NCBusyIndicatorHandlerWrapper);
}
+#endif
///////////////////////////////////////////////////////////////////
//
Modified: trunk/ncurses/src/YNCursesUI.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses/src/YNCursesUI.cc?rev=43971&r1=43970&r2=43971&view=diff
==============================================================================
--- trunk/ncurses/src/YNCursesUI.cc (original)
+++ trunk/ncurses/src/YNCursesUI.cc Tue Jan 29 15:46:34 2008
@@ -162,6 +162,10 @@
if (currentDialog) {
NCDialog * ncd = static_cast