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>