Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 May 1997 02:00:19 -0500 (CDT)
From:      "Daniel M. Eischen" <deischen@iworks.InterWorks.org>
To:        jb@freebsd1.cimlogic.com.au
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: GNAT-pthreads integration bugs/questions
Message-ID:  <199705180700.CAA20456@iworks.InterWorks.org>

next in thread | raw e-mail | index | archive | help
> >   o There is a mechanism in the GNAT runtime to reserve signals so that
> >     they will never allowed to be masked by an application.  Like SIGVTALRM
> >     because it is used by pthreads (setitimer/getitimer) for scheduling.
> >     Pthreads doesn't seem to use SIGALRM, but I've reserved this signal also.
> 
> No it doesn't. You can use it if you want to.
>
> >     Is it safe to allow SIGALRM to be masked?
>
> Unless you try to do things with the _thread_sys_*() functions any masking
> you try to do will just affect the user-interface, not the thread library.
>
> >     I've reserved SIGCHLD,
> >     SIGSTOP, SIGKILL, and SIGINT.
>
> You can do that, but you don't need to.

OK, thanks.  It works as is, but I'll try it without reserving these
signals.

Is there any interest in making pthreads with rfork?  Or someway to get
a real process from a thread?  I thought about implementing Ada tasking
using rfork, but it really wants to use pthreads.  A couple things I
can't do with rfork (or don't know how to do using other mechanisms)
is to explicitly set the stack size (as in pthread_attr_setstacksize),
mutexes and condition variables (could use SYSV semaphores I suppose),
and the ability to create a key (pthread_key_create) that is specific
to each process - like taskVarAdd() in VxWorks :-)

Dan Eischen
deischen@iworks.InterWorks.org



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