[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-threads
Subject: Re: threads/75273: FBSD 5.3 libpthread (KSE) bug
From: "Enoch W." <ixew () hotmail ! com>
Date: 2004-12-22 4:30:35
Message-ID: 200412220430.iBM4UZaY074828 () freefall ! freebsd ! org
[Download RAW message or body]
The following reply was made to PR threads/75273; it has been noted by GNATS.
From: "Enoch W." <ixew@hotmail.com>
To: <freebsd-gnats-submit@FreeBSD.org>, <ixew@hotmail.com>
Cc:
Subject: Re: threads/75273: FBSD 5.3 libpthread (KSE) bug
Date: Tue, 21 Dec 2004 23:26:28 -0500
This is a multi-part message in MIME format.
------=_NextPart_000_0002_01C4E7B4.7F0A0870
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0003_01C4E7B4.7F0B8F10"
------=_NextPart_001_0003_01C4E7B4.7F0B8F10
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Problem demo is attached, as requested. TIA, Enoch.
------=_NextPart_001_0003_01C4E7B4.7F0B8F10
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Problem demo is attached, as requested. TIA,
Enoch.</FONT></DIV></BODY></HTML>
------=_NextPart_001_0003_01C4E7B4.7F0B8F10--
------=_NextPart_000_0002_01C4E7B4.7F0A0870
Content-Type: application/octet-stream;
name="demo.c"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="demo.c"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <pthread.h>
#define ASSRET(cond) do { \
if (!(cond)) { \
fprintf(stderr, "ASSRET ERROR @ %d -> %s\n", __LINE__, \
strerror(ret == -1 ? errno : ret)); \
exit(EXIT_FAILURE); \
} \
} while (0)
int tock;
void tick()
{
tock = 1;
}
void *pulse(void *arg)
{
int ret;
struct itimerval it;
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGALRM);
ret = sigprocmask(SIG_BLOCK, &set, NULL);
ASSRET(ret == 0);
sigemptyset(&set);
it.it_interval.tv_sec = 1;
it.it_interval.tv_usec = 0;
it.it_value.tv_sec = 1;
it.it_value.tv_usec = 0;
ret = setitimer(ITIMER_REAL, &it, NULL);
ASSRET(ret == 0);
while (1) {
while (!tock)
sigsuspend(&set);
tock = 0;
putchar('*');
fflush(stdout);
}
}
int main()
{
int ret;
pthread_attr_t attr;
pthread_t thread;
ret = pthread_attr_init(&attr);
ASSRET(ret == 0);
ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
ASSRET(ret == 0);
signal(SIGALRM, tick);
ret = pthread_create(&thread, NULL, pulse, NULL);
ASSRET(ret == 0);
printf("Press Enter to cancel the pulse() thread\n");
while (getchar() != '\n');
ret = pthread_cancel(thread);
ASSRET(ret == 0);
ret = pthread_join(thread, NULL);
ASSRET(ret == 0);
printf("Press Enter to end\n");
while (getchar() != '\n');
return 0;
}
------=_NextPart_000_0002_01C4E7B4.7F0A0870
Content-Type: application/octet-stream;
name="demo.mk"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="demo.mk"
demo: demo.c
$(CC) -Wall -g -odemo -pthread demo.c
------=_NextPart_000_0002_01C4E7B4.7F0A0870--
_______________________________________________
freebsd-threads@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-threads
To unsubscribe, send any mail to "freebsd-threads-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic