Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Jul 2003 22:52:47 -0700
From:      David Schultz <das@FreeBSD.ORG>
To:        David Xu <davidxu@FreeBSD.ORG>
Cc:        freebsd-threads@FreeBSD.ORG
Subject:   Threads regression tests (was: Re: ACE Proactor and libkse)
Message-ID:  <20030716055247.GA39968@HAL9000.homeunix.com>
In-Reply-To: <002801c34b29$1a9831b0$0701a8c0@tiger>
References:  <20030715175141.GA99650@crodrigues.org> <002801c34b29$1a9831b0$0701a8c0@tiger>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jul 16, 2003, David Xu wrote:
> Can you test my libkse patch ?
> http://people.freebsd.org/~davidxu/libpthread_bound.diffs
> If you can test the patch to make sure I don't break signal
> code, then I will commit this patch. 

Is there interest in incrementally building a threads-related
regression test suite in src/tools/regression?  This would mean
less breakage for people who are trying to use KSE/libthr, and an
easy way for threads developers to be somewhat confident that
their changes are correct.  For example, two weeks ago I was
tearing my hair out over a sigwait() problem that caused the
following program to deadlock.  Since I already bothered to
isolate the bug, why not do the last 1% of the work and check in a
test so that it never comes back?  Thoughts?


#include <err.h>
#include <signal.h>
#include <stdlib.h>

int main() {

	sigset_t mask;
	int sig;

	sigemptyset(&mask);
	sigaddset(&mask, SIGALRM);
	if (sigprocmask(SIG_BLOCK, &mask, NULL) < 0)
		err(1, "sigprocmask");

	if (raise(SIGALRM) < 0)
		err(1, "raise");

	if (sigwait(&mask, &sig) < 0)
		err(1, "sigwait");
        
	return (0);
}



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