#16 Fix #423425 - OS exceptions broken

open
None
5
2001-11-28
2001-05-15
bugger
No

The attached patch fixes

http://sourceforge.net/tracker/index.php?
func=detail&aid=423425&group_id=22417&atid=375214

OS signal handling is broken as of the glibc 2.2.3
release (and RedHat 7.1, which nominally is glibc
2.2.2, but actually has internal 2.2.3 - IOW, the
typical RedHat mess) due to binary incompatible
changes made to linuxthreads.

The attached patch resolves this by always writing to
the passed context structure (something that is not
done now).

The attached patch also

* adds a safe-guard that the scalpel code employed
does not send the process off into nirvana

* adds a safe-guard for the case that the code does
not find what it expects; a Runtime Error 0 is
emitted and the process taken down if the scalpel
does not find the context. See comment in
patch.

Discussion

  • bugger

    bugger - 2001-05-15
     
  • bugger

    bugger - 2001-05-15
     
  • Rudolph van Graan

    Logged In: YES
    user_id=48502

    It *seems* as though the patch is broken:

    This removes the declaration for "TlsGetValue":

    -function TlsGetValue(Key: Integer): Pointer; cdecl;
    - external libpthreadmodulename name 'pthread_getspecific';
    -

    which is needed by "SignalDispatcher".

    (checked with version 1.2 in the cvs repository).
    SysUtils.pas compiles again after putting the declaration
    back.

     
  • Chuck Jazdzewski

    • assigned_to: nobody --> cjaz
     

Log in to post a comment.