Koush, Nice, can you please confirm on the list that you're willing to contribute this patch under the terms of the MIT/X11 license?
Thanks -g On 2010-09-30, at 12:26 AM, Koushik Dutta wrote: > Here is the fix for the following bug: > https://bugzilla.novell.com/show_bug.cgi?id=633454 > > The underlying problem is there is a bug in Android's libc, where after a > process forks, the kernel id of the forked thread is not changed to reflect > the new child thread. The pthread kernel id still points to the kernel id of > the parent process: zygote. > > This bug breaks all multithread monodroid apps (as well as my mono on Android > port), as Garbage Collection fails and the process hangs. > > The fix/workaround for the bug in Android is as follows: > The GC_Thread structure on Android has a new "kernel_id" member. When > GC_new_thread is called, the kernel id is also retrieved and stored with > gettid. When the world needs to be stopped/started, a new function > android_thread_kill is called, which is a reimplementation of Android's > pthread_kill. Instead, which takes the correct kernel id, rather than the > potentially hosed pthread. > > I have attached a patch file, as well as committed to my fork of mono on > Github: > http://github.com/koush/mono/commit/414aff5598a2dea618741bea714fa8dd1baf0d52 > > > <pthread_android.patch>_______________________________________________ > Mono-list maillist - [email protected] > http://lists.ximian.com/mailman/listinfo/mono-list
_______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
