On Tue, 26 Feb 2002, Martin Blapp wrote:
> Hi all,
>
> I've recieved patches from Carlos Fernando Assis Paniago <[EMAIL PROTECTED]>
> to get Openoffice Build 641 running.
>
> Since I'm not familiar, I hope someone else can look at them and point me
> to the right direction to have a working OpenOffice port.
>
> > Tim find this bug. The old version doesn have this loop that is a infinite
> > loop in OO.
>
> Comment: I guess this is a bug in openoffice. Can someone help me to track it
> down ?
>
> --- lib/libc_r/uthread/uthread_join.c.orig Wed Dec 19 23:29:20 2001
> +++ lib/libc_r/uthread/uthread_join.c Tue Feb 26 18:53:28 2002
> @@ -124,10 +124,7 @@
> /* Keep track of which thread we're joining to: */
> curthread->join_status.thread = pthread;
>
> - while (curthread->join_status.thread == pthread) {
> - /* Schedule the next thread: */
> - _thread_kern_sched_state(PS_JOIN, __FILE__, __LINE__);
> - }
> + _thread_kern_sched_state(PS_JOIN, __FILE__, __LINE__);
This isn't a correct fix. The joinee (the thread being joined _to_)
is responsible for clearing the joiner's join_status.thread when
he detaches/exits. Threads in a join operation are allowed to
call signal handlers, so it needs to be in a loop (in theory, the
joinee could detach/exit while the joiner was running the signal
handler).
If there is a bug, it is in the exit or detach code.
--
Dan Eischen
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message