harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Salikh Zakirov (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
Date Tue, 20 Mar 2007 10:52:32 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Salikh Zakirov updated HARMONY-3288:

    Attachment: 0011-Acquire-global-thread-lock-on-creating-new-thread.patch

0011-Acquire-global-thread-lock-on-creating-new-thread.patch fixes the gc.SynchronizedFinilazersTest

The regression was caused by a race condition, when the thread registered itself with the
thread group,
and thus became available for suspending, before the creator thread completed the os_thread_create()
and have thead->os_handle initialized properly. Subsequent access to not yet initialized
field caused segfaults or assertion failures.

With this fix, the patch is ready to be committed, 'build test' passed on Linux/ia32 (SUSE9).

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch,
0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch,
0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch,
0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch,
0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch,
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools
to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle
of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While
this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces
directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory
model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR
pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message