summaryrefslogtreecommitdiffstats
path: root/sys/isa
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>1998-04-16 09:41:55 +0000
committerdes <des@FreeBSD.org>1998-04-16 09:41:55 +0000
commit7e960e23c8a2d7dadca04b3344225434cb3d06a1 (patch)
tree1ccf5c902fd78b74719a6a7096cdfbe64a1dd49b /sys/isa
parentca30ae9dd4535c713d0a0635c82dfb5e52733bce (diff)
downloadFreeBSD-src-7e960e23c8a2d7dadca04b3344225434cb3d06a1.zip
FreeBSD-src-7e960e23c8a2d7dadca04b3344225434cb3d06a1.tar.gz
Swapped "should we just return" and "should we stop the screensaver"
in scrn_timer() to avoid deadlock with graphical screensavers.
Diffstat (limited to 'sys/isa')
-rw-r--r--sys/isa/syscons.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c
index 480525c..dd251c6 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))
OpenPOWER on IntegriCloud