Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jan 2003 05:28:33 +0200
From:      Enache Adrian <enache@rdslink.ro>
To:        hackers@freebsd.org
Subject:   signals lost when linked with libc_r ?
Message-ID:  <20030123032833.GA5075@ratsnest.hole>

next in thread | raw e-mail | index | archive | help
FreeBSD seems to loose signals in programs linked with libc_r.

sigaction.c ( freely translated from Perl's ext/POSIX/t/posix.t test)
-----------------8x----------------------
#include <unistd.h>
#include <signal.h>
#include <stdio.h>

void sighup(int dummy)
{
	kill(getpid(),SIGINT);
	sleep(1);
	printf("sigint delayed ...\n");
}

void sigint(int dummy)
{
	printf("SIGINT !\n");
}

struct sigaction act;

int main()
{
	act.sa_handler = sighup;
	sigaddset(&act.sa_mask, SIGINT);
	sigaction(SIGHUP, &act, NULL);
	signal(SIGINT,sigint);
	kill(getpid(),SIGHUP);
	sleep(2);
	printf("*\n");
	return 0;
}
-----------------8x-----------------------

csh# cc sigaction.c -o sigaction
csh# ./sigaction
sigint delayed ...
SIGINT !
*
csh# cc -lc_r sigaction.c -o sigaction
csh# ./sigaction
sigint delayed ...
*

(this is -CURRENT, cvsup'ed 3 days ago)

Please enlighten me.
Adi

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030123032833.GA5075>