[comp.sys.isis] Problem with "isis_dofork

ken@gvax.cs.cornell.edu (Ken Birman) (02/01/90)

>From sechrest@dip.eecs.umich.edu Wed Jan 31 22:02:04 1990
>Date: Wed, 31 Jan 90 21:59:42 EST
>From: sechrest@dip.eecs.umich.edu (Stuart Sechrest)
>Message-Id: <9002010259.AA17387@dip.eecs.umich.edu>

>Ken,
>	The definition of isis_dofork() for the MIPS machine doesn't
>seem to work.  I have the following definition in clibs/cl_isis.c:

>	isis_dofork()
>  	    {
>	#if     (HPUX|SUN|VAX)
>            return(fork());
>	#else
>            return(vfork());
>	#endif
>            }

>Returning from a subroutine that calls vfork() seems to screw up the stack
>pointer.  This is something that is warned against in the man page for
>VFORK(2)....

Yes, this is clearly a bug and might affect any non HPUX/SUN/VAX systems
running under ISIS.  I suggest that users with software running on a MIPS
machine or some other architecture not in this list eliminate isis_dofork
and add the following macro definition in isis.h:

#if	(HPUX|SUN|VAX)
#  define  isis_dofork()    fork()
#else
#  define  isis_dofork()    vfork()
#endif

I'll make this change in ISIS V2.0 too.  Thanks!