Hi,

   I have run into an issue with the difference between what
happens when a signal handler returns from a program converted
to use pthreads (vs non-pthreads).

   Basically, in the non-pthread case, a change made to the
sc_eip element of the scp struct is honored when the kernel
restores the processes context.

   In the pthreads case, the change to the sc_eip element
is ignored.

   A test case which shows both a working and non-working
version of this resides at:

http://www.freebsd.org/~jwd/sigtst/


   The makefile produces two executables:

      fptrap : a 'correct' executable - non-pthreads
      fptrapt: a 'bad' executable - pthreads

%./fptrap
** Result correct: 1234.57
%./fptrapt
** Result incorrect: 1

   I'd like to hear if you've dealt with the issue of precise
error recovery and how it was dealt with. I'm currently exploring
whether a fix to the pthread library is feasible or whether
an application change is required (or conclude that the type
of error recovery I need can't be done with pthreads).

Thanks!
John


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to