version 1.1, 1995/10/18 08:46:58 |
version 1.2, 1995/12/26 18:00:31 |
|
|
/* $NetBSD: wwflush.c,v 1.3 1995/09/28 10:35:30 tls Exp $ */ |
/* $NetBSD: wwflush.c,v 1.5 1995/12/21 10:46:08 mycroft Exp $ */ |
|
|
/* |
/* |
* Copyright (c) 1983, 1993 |
* Copyright (c) 1983, 1993 |
|
|
#if 0 |
#if 0 |
static char sccsid[] = "@(#)wwflush.c 8.1 (Berkeley) 6/6/93"; |
static char sccsid[] = "@(#)wwflush.c 8.1 (Berkeley) 6/6/93"; |
#else |
#else |
static char rcsid[] = "$NetBSD: wwflush.c,v 1.3 1995/09/28 10:35:30 tls Exp $"; |
static char rcsid[] = "$NetBSD: wwflush.c,v 1.5 1995/12/21 10:46:08 mycroft Exp $"; |
#endif |
#endif |
#endif /* not lint */ |
#endif /* not lint */ |
|
|
|
|
|
|
wwcheckpoint() |
wwcheckpoint() |
{ |
{ |
int s = sigblock(sigmask(SIGALRM) | sigmask(SIGIO)); |
sigset_t sigset, osigset; |
|
|
|
sigemptyset(&sigset); |
|
sigaddset(&sigset, SIGALRM); |
|
sigprocmask(SIG_BLOCK, &sigset, &osigset); |
|
|
tt.tt_ack = 0; |
tt.tt_ack = 0; |
do { |
do { |
(*tt.tt_checkpoint)(); |
(*tt.tt_checkpoint)(); |
|
|
#endif |
#endif |
(void) alarm(3); |
(void) alarm(3); |
for (wwdocheckpoint = 0; !wwdocheckpoint && tt.tt_ack == 0;) |
for (wwdocheckpoint = 0; !wwdocheckpoint && tt.tt_ack == 0;) |
(void) sigpause(s); |
sigsuspend(&osigset); |
} while (tt.tt_ack == 0); |
} while (tt.tt_ack == 0); |
(void) alarm(0); |
(void) alarm(0); |
wwdocheckpoint = 0; |
wwdocheckpoint = 0; |
|
|
wwcopyscreen(wwos, wwcs); |
wwcopyscreen(wwos, wwcs); |
(void) alarm(3); |
(void) alarm(3); |
} |
} |
(void) sigsetmask(s); |
|
|
sigprocmask(SIG_SETMASK, &osigset, (sigset_t *)0); |
} |
} |
|
|
wwcopyscreen(s1, s2) |
wwcopyscreen(s1, s2) |