delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/07/05/17:23:25

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-ID: <B9906C3F4BB3D311A60F009027463EE993C1AA@mgmgrand.adtech-inc.com>
From: "Jimen.Ching" <JChing AT adtech-inc DOT com>
To: cygwin AT sourceware DOT cygnus DOT com
Subject: ITIMER_REAL
Date: Wed, 5 Jul 2000 11:06:12 -1000
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)

------_=_NextPart_000_01BFE6C4.D955A3A0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01BFE6C4.D955A3A0"


------_=_NextPart_001_01BFE6C4.D955A3A0
Content-Type: text/plain;
	charset="iso-8859-1"

Hi all,

The attached program is supposed to wait 3 seconds and wait for a key press.
But it takes 3 minutes before the message is printed.  Can someone tell me
if I am doing something wrong?

--jc
--
jimen AT adtech-inc DOT com     Adtech, Inc.    (808) 734-3300


------_=_NextPart_001_01BFE6C4.D955A3A0
Content-Type: text/html;
	charset="iso-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2650.12">
<TITLE>ITIMER_REAL</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Hi all,</FONT>
</P>

<P><FONT SIZE=2>The attached program is supposed to wait 3 seconds and wait for a key press.</FONT>
<BR><FONT SIZE=2>But it takes 3 minutes before the message is printed.&nbsp; Can someone tell me</FONT>
<BR><FONT SIZE=2>if I am doing something wrong?</FONT>
</P>

<P><FONT SIZE=2>--jc</FONT>
<BR><FONT SIZE=2>--</FONT>
<BR><FONT SIZE=2>jimen AT adtech-inc DOT com&nbsp;&nbsp;&nbsp;&nbsp; Adtech, Inc.&nbsp;&nbsp;&nbsp; (808) 734-3300</FONT>
</P>

<P><FONT FACE="Arial" SIZE=2 COLOR="#000000"></FONT>&nbsp;

</BODY>
</HTML>
------_=_NextPart_001_01BFE6C4.D955A3A0--

------_=_NextPart_000_01BFE6C4.D955A3A0
Content-Type: application/octet-stream;
	name="sigalrm.c"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="sigalrm.c"

#include <sys/time.h>=0A=
#include <signal.h>=0A=
#include <time.h>=0A=
#include <stdio.h>=0A=
#include <stdlib.h>=0A=
=0A=
#ifndef SA_RESTART=0A=
#define SA_RESTART 0=0A=
#endif=0A=
=0A=
unsigned jiffies;=0A=
static sigset_t posix_signal_mask;=0A=
=0A=
static void=0A=
clock_start(int us)=0A=
	{=0A=
	struct itimerval new_it;=0A=
=0A=
	new_it.it_value.tv_sec =3D 0;=0A=
	new_it.it_value.tv_usec =3D us;=0A=
	new_it.it_interval.tv_sec =3D 0;=0A=
	new_it.it_interval.tv_usec =3D us;=0A=
	setitimer(ITIMER_REAL, &new_it, 0);=0A=
	}=0A=
=0A=
static void=0A=
isr_enable(unsigned level)=0A=
	{=0A=
	if (level =3D=3D 0)=0A=
		{=0A=
		sigprocmask(SIG_UNBLOCK, &posix_signal_mask, 0);=0A=
		}=0A=
	else=0A=
		{=0A=
		sigprocmask(SIG_BLOCK, &posix_signal_mask, 0);=0A=
		}=0A=
	}=0A=
=0A=
static void=0A=
isr_handler(int sig_num)=0A=
	{=0A=
	switch(sig_num)=0A=
		{=0A=
		case SIGCHLD:=0A=
			break;=0A=
		case SIGALRM:=0A=
			++jiffies;=0A=
			break;=0A=
		default:=0A=
			break;=0A=
		}=0A=
	}=0A=
=0A=
void=0A=
posix_init(void)=0A=
	{=0A=
	struct sigaction act;=0A=
	sigset_t mask;=0A=
=0A=
	/*=0A=
	 * Block all the signals except SIGTRAP (for the debugger)=0A=
	 * and fatal error signals.=0A=
	 */=0A=
	sigfillset(&posix_signal_mask);=0A=
	sigdelset(&posix_signal_mask, SIGTRAP);=0A=
	sigdelset(&posix_signal_mask, SIGABRT);=0A=
#ifdef SIGIOT=0A=
	sigdelset(&posix_signal_mask, SIGIOT);=0A=
#endif=0A=
	sigdelset(&posix_signal_mask, SIGCONT);=0A=
	sigdelset(&posix_signal_mask, SIGSEGV);=0A=
	sigdelset(&posix_signal_mask, SIGBUS);=0A=
	sigdelset(&posix_signal_mask, SIGFPE);=0A=
=0A=
	isr_enable(1);=0A=
=0A=
	/* Unblock signals. */=0A=
	mask =3D posix_signal_mask;=0A=
	sigprocmask(SIG_UNBLOCK, &mask, 0);=0A=
=0A=
	act.sa_handler =3D isr_handler;=0A=
	act.sa_mask =3D mask;=0A=
	act.sa_flags =3D SA_RESTART;=0A=
=0A=
	sigaction(SIGHUP, &act, 0);=0A=
	sigaction(SIGINT, &act, 0);=0A=
	sigaction(SIGQUIT, &act, 0);=0A=
	sigaction(SIGILL, &act, 0);=0A=
#ifdef SIGEMT=0A=
	sigaction(SIGEMT, &act, 0);=0A=
#endif=0A=
	sigaction(SIGFPE, &act, 0);=0A=
	sigaction(SIGKILL, &act, 0);=0A=
	sigaction(SIGBUS, &act, 0);=0A=
	sigaction(SIGSEGV, &act, 0);=0A=
#ifdef SIGSYS=0A=
	sigaction(SIGSYS, &act, 0);=0A=
#endif=0A=
	sigaction(SIGPIPE, &act, 0);=0A=
	sigaction(SIGALRM, &act, 0);=0A=
	sigaction(SIGTERM, &act, 0);=0A=
	sigaction(SIGUSR1, &act, 0);=0A=
	sigaction(SIGUSR2, &act, 0);=0A=
	sigaction(SIGCHLD, &act, 0);=0A=
	sigaction(SIGCLD, &act, 0);=0A=
#ifdef SIGPWR=0A=
	sigaction(SIGPWR, &act, 0);=0A=
#endif=0A=
	sigaction(SIGVTALRM, &act, 0);=0A=
	sigaction(SIGPROF, &act, 0);=0A=
	sigaction(SIGIO, &act, 0);=0A=
	sigaction(SIGWINCH, &act, 0);=0A=
	sigaction(SIGSTOP, &act, 0);=0A=
	sigaction(SIGTTIN, &act, 0);=0A=
	sigaction(SIGTTOU, &act, 0);=0A=
	sigaction(SIGURG, &act, 0);=0A=
#ifdef SIGLOST=0A=
    sigaction(SIGLOST, &act, 0);=0A=
#endif=0A=
=0A=
	clock_start(1000);=0A=
	}=0A=
=0A=
int=0A=
main(int argc, char *argv[])=0A=
	{=0A=
	posix_init();=0A=
=0A=
	while (jiffies < 3000);=0A=
=0A=
	printf("Hit any key to quit...\n");=0A=
	while (1)=0A=
		{=0A=
		if (getchar() > 0)=0A=
			break;=0A=
		}=0A=
	return 0;=0A=
	}=0A=


------_=_NextPart_000_01BFE6C4.D955A3A0
Content-Type: text/plain; charset=us-ascii

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
------_=_NextPart_000_01BFE6C4.D955A3A0--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019