From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31711 invoked by alias); 31 Jan 2003 11:47:08 -0000 Mailing-List: contact ecos-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@sources.redhat.com Received: (qmail 31692 invoked from network); 31 Jan 2003 11:47:07 -0000 Received: from unknown (HELO anchor-post-39.mail.demon.net) (194.217.242.80) by 172.16.49.205 with SMTP; 31 Jan 2003 11:47:07 -0000 Received: from calivar.demon.co.uk ([212.228.213.211] helo=xl5.calivar.com) by anchor-post-39.mail.demon.net with esmtp (Exim 3.36 #2) id 18eZdE-0005Ba-0d; Fri, 31 Jan 2003 11:46:56 +0000 Received: from balti.calivar.com (balti.calivar.com [10.0.0.102]) by xl5.calivar.com (Postfix) with ESMTP id EF0FB148B9; Fri, 31 Jan 2003 10:55:54 +0000 (GMT) To: "N.Suresh" Cc: ecos-discuss , Prakash R , Shiv Kumar , Titty Thomas References: <3E380BCE.9010201@cdotb.ernet.in> <3E38CA39.6040804@cdotb.ernet.in> <3E395FAF.3070306@cdotb.ernet.in> From: Nick Garnett Date: Fri, 31 Jan 2003 14:29:00 -0000 In-Reply-To: <3E395FAF.3070306@cdotb.ernet.in> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [ECOS] sigwait not returning X-SW-Source: 2003-01/txt/msg00459.txt.bz2 "N.Suresh" writes: > Hi, > We tried delivering the signal to a sigwait () call: > *) Using alarm () function --- Working. > *) pthread_kill () function --- Working. > > It looks like only in the case of timer_create () case, the > sigwait is not returning. > > We traced the call and found that in the following piece of code, > signal_sigwait condition variable's queue is empty. > So it is not calling the broadcast method which will wake the > sigwait thread. > It is releasing the thread, and in next POSIX_ASR call, the > cyg_deliver_signals function is calling _exit because there > is no signal handler registered for this thread. > All these functions are getting called only if i unmask the > signal in the thread before calling the sigwait. > Otherwise the check in the alarm_action function whether thread > is accepting this signal will fail. > Are we on the right path of debugging? > Sort of. I've been looking at this myself. The problem is that the timer alarm_action() routine should broadcast the signal_sigwait condition variable the same way that sigalrm_action() does. I have this fixed locally. However, We've been having power cuts here and I haven't had time to check it in to the repository. I'll try to do that later today. -- Nick Garnett - eCos Kernel Architect http://www.eCosCentric.com/ -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss