Done.

I simply eliminated the USE_SYSCALLS. This greatly simplified those files.

-- Dave

At 05:41 AM 11/10/2003 Monday, Brian F. G. Bidulock wrote:
Dave,

When LiS is compiled with USE_SYSCALLS, you are using system calls
from asm/unistd.h.  These are non-thread-safe system calls.  Is there
some reason not to use the glibc2 (thread-safe) system calls instead?

Also, even without USE_SYSCALLS (which doesn't occur on recent LiS
releases anyway), the libc/fdetach.c file includes <errno.h> and
refers to errno.  Problem is that _REENTRANT is not defined before
including <errno.h> making the entire function non-thread-safe (use
of global errno).  Same thing happens in libc/pipe.c.  Also, strangely,
if the program using libLiS is thread-safe, it will never see your
errno manipulations because you are only manipulating the global errno
and the thread will check the thread-specific errno.

POSIX and XOPEN require thread safety of fattach, fdetach, and pipe.

Strangely enough, the very function from libLiS that have thread
safety destroyed in this fashion are not tested in thrtst.c  (Neither
is getmsg, getpmsg, putmsg, and putpmsg either).

Can you add

#define _REENTRANT
#define _THREAD_SAFE
#define _XOPEN_SOURCE 500 /* or greater */

before including <errno.h> in all the .c files in libc, and especially
fattach.c, fdetach.c and pipe.c?  Also, because the asm/unistd.h syscall
wrappers are incompatible with glibc2, could you remove the USE_SYSCALLS
bracketed code altogether and fall back on the glibc2 versions of putmsg,
putpmsg, getmsg, getpmsg?

--brian

--
Brian F. G. Bidulock    � The reasonable man adapts himself to the �
[EMAIL PROTECTED]    � world; the unreasonable one persists in  �
http://www.openss7.org/ � trying  to adapt the  world  to himself. �
                        � Therefore  all  progress  depends on the �
                        � unreasonable man. -- George Bernard Shaw �

_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams


_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to