aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>1998-04-16 09:41:55 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>1998-04-16 09:41:55 +0000
commit604d46b6e57793ee5e70670a47b0004ea784d2bd (patch)
treee1efd3654b4cea7d651705c676c28e2ca4739fd5
parentb7574f89a4aa5e8e85ea778b804590130b3a010e (diff)
downloadsrc-604d46b6e57793ee5e70670a47b0004ea784d2bd.tar.gz
src-604d46b6e57793ee5e70670a47b0004ea784d2bd.zip
Swapped "should we just return" and "should we stop the screensaver"
in scrn_timer() to avoid deadlock with graphical screensavers.
Notes
Notes: svn path=/head/; revision=35223
-rw-r--r--sys/dev/syscons/syscons.c19
-rw-r--r--sys/i386/isa/syscons.c19
-rw-r--r--sys/isa/syscons.c19
3 files changed, 33 insertions, 24 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 480525c85b03..dd251c6953bb 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.257 1998/04/04 13:24:51 phk Exp $
+ * $Id: syscons.c,v 1.258 1998/04/04 16:26:53 yokota Exp $
*/
#include "sc.h"
@@ -2350,13 +2350,6 @@ scrn_timer(void *arg)
scintr(0);
}
- /* should we just return ? */
- if ((scp->status&UNKNOWN_MODE) || blink_in_progress || switch_in_progress) {
- timeout(scrn_timer, NULL, hz / 10);
- splx(s);
- return;
- }
-
/* should we stop the screen saver? */
getmicroruntime(&tv);
if (panicstr)
@@ -2364,9 +2357,19 @@ scrn_timer(void *arg)
if (tv.tv_sec <= scrn_time_stamp.tv_sec + scrn_blank_time)
if (scrn_blanked > 0)
stop_scrn_saver(current_saver);
+
+ /* should we just return ? */
+ if ((scp->status&UNKNOWN_MODE) || blink_in_progress || switch_in_progress) {
+ timeout(scrn_timer, NULL, hz / 10);
+ splx(s);
+ return;
+ }
+
+ /* Update the screen */
scp = cur_console;
if (scrn_blanked <= 0)
scrn_update(scp, TRUE);
+
/* should we activate the screen saver? */
if ((scrn_blank_time != 0)
&& (tv.tv_sec > scrn_time_stamp.tv_sec + scrn_blank_time))
diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c
index 480525c85b03..dd251c6953bb 100644
--- a/sys/i386/isa/syscons.c
+++ b/sys/i386/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.257 1998/04/04 13:24:51 phk Exp $
+ * $Id: syscons.c,v 1.258 1998/04/04 16:26:53 yokota Exp $
*/
#include "sc.h"
@@ -2350,13 +2350,6 @@ scrn_timer(void *arg)
scintr(0);
}
- /* should we just return ? */
- if ((scp->status&UNKNOWN_MODE) || blink_in_progress || switch_in_progress) {
- timeout(scrn_timer, NULL, hz / 10);
- splx(s);
- return;
- }
-
/* should we stop the screen saver? */
getmicroruntime(&tv);
if (panicstr)
@@ -2364,9 +2357,19 @@ scrn_timer(void *arg)
if (tv.tv_sec <= scrn_time_stamp.tv_sec + scrn_blank_time)
if (scrn_blanked > 0)
stop_scrn_saver(current_saver);
+
+ /* should we just return ? */
+ if ((scp->status&UNKNOWN_MODE) || blink_in_progress || switch_in_progress) {
+ timeout(scrn_timer, NULL, hz / 10);
+ splx(s);
+ return;
+ }
+
+ /* Update the screen */
scp = cur_console;
if (scrn_blanked <= 0)
scrn_update(scp, TRUE);
+
/* should we activate the screen saver? */
if ((scrn_blank_time != 0)
&& (tv.tv_sec > scrn_time_stamp.tv_sec + scrn_blank_time))
diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c
index 480525c85b03..dd251c6953bb 100644
--- a/sys/isa/syscons.c
+++ b/sys/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.257 1998/04/04 13:24:51 phk Exp $
+ * $Id: syscons.c,v 1.258 1998/04/04 16:26:53 yokota Exp $
*/
#include "sc.h"
@@ -2350,13 +2350,6 @@ scrn_timer(void *arg)
scintr(0);
}
- /* should we just return ? */
- if ((scp->status&UNKNOWN_MODE) || blink_in_progress || switch_in_progress) {
- timeout(scrn_timer, NULL, hz / 10);
- splx(s);
- return;
- }
-
/* should we stop the screen saver? */
getmicroruntime(&tv);
if (panicstr)
@@ -2364,9 +2357,19 @@ scrn_timer(void *arg)
if (tv.tv_sec <= scrn_time_stamp.tv_sec + scrn_blank_time)
if (scrn_blanked > 0)
stop_scrn_saver(current_saver);
+
+ /* should we just return ? */
+ if ((scp->status&UNKNOWN_MODE) || blink_in_progress || switch_in_progress) {
+ timeout(scrn_timer, NULL, hz / 10);
+ splx(s);
+ return;
+ }
+
+ /* Update the screen */
scp = cur_console;
if (scrn_blanked <= 0)
scrn_update(scp, TRUE);
+
/* should we activate the screen saver? */
if ((scrn_blank_time != 0)
&& (tv.tv_sec > scrn_time_stamp.tv_sec + scrn_blank_time))