On Mon, Mar 21, 2011 at 11:14 AM, Thorsten Glaser wrote: >>> your simple implementation is probably incorrect -- errno cannot be >>> referenced directly. > > Mh. On the other hand, the manpage says: > > In a multithreaded application, vfork() borrows only the > thread of control that called vfork() in the parent; that > is, the child contains only one thread. The use of vfork() > in multithreaded applications, however, is unsafe due to > race conditons that can cause the child process to become > deadlocked and consequently block both the child and parent > process from execution indefinitely.
which is irrelevant in the case of updating errno -- the vfork failed and thus no 2nd process is running > But if that’s a concern… fix it i have nothing to do with cris. but the answer here is not "fix it" but rather "patch not merged". no sweat off my back since i dont have any cris hardware. > He found a problem and a WFM-style fix, which at > least improves the situation. then file a bug in bugzilla so someone else will fix it eventually > By all means, replace the errno > access with a jump to __syscall_error after setting up registers > in a way that routine (from sysdeps/linux/cris/sysdep.S) expects > it; I don’t know cris assembly but it doesn’t look _too_ hard… tailing to __syscall_error is probably a wise decision -mike _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
