Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 44424 invoked from network); 16 Mar 2007 13:17:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Mar 2007 13:17:38 -0000 Received: (qmail 52737 invoked by uid 500); 16 Mar 2007 13:17:40 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 52708 invoked by uid 500); 16 Mar 2007 13:17:39 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 52694 invoked by uid 99); 16 Mar 2007 13:17:39 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Mar 2007 06:17:39 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Mar 2007 06:17:29 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 73ECC71407E for ; Fri, 16 Mar 2007 06:17:09 -0700 (PDT) Message-ID: <17684276.1174051029472.JavaMail.jira@brutus> Date: Fri, 16 Mar 2007 06:17:09 -0700 (PDT) From: "Pavel Rebriy (JIRA)" To: commits@harmony.apache.org Subject: [jira] Created: (HARMONY-3413) [drlvm][thread] Re-factoring exception safepoint callback MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [drlvm][thread] Re-factoring exception safepoint callback --------------------------------------------------------- Key: HARMONY-3413 URL: https://issues.apache.org/jira/browse/HARMONY-3413 Project: Harmony Issue Type: Improvement Components: DRLVM Reporter: Pavel Rebriy Attachments: thread_manager_safe_point_callbacks.patch Safepoint callbacks function is used for throwing an exception for another thread. There are several safepoint callbacks: thread_stop callback is used to stop the thread, vm_shutdown callback is used to shutdown the thread and pop_frame callback is used to do PopFrame on the thread. A thread marks itself with functions hythread_suspend_enable() and hythread_suspend_disable() in order to denote a safe region of code. A thread may also call hythread_safe_point() method to denote a selected point where safe suspension is possible. Safepoint callback function is called from suspension safe point. The problem is not all suspension safe points are safe for exception throwing. For instance several parts of class loader or jni code expects they are working in exception free state and if hythread_suspend_disable() function raises an exception it causes an assertion. The same problems appear in interpreter. There are 2 ways to fix the problem. The first one is to make all suspension safe points valid for exception throwing. This change is very complex, unsafe and related through all VM code. Another way is separate suspension safe point and exception valid safe point. The suggested patch implements the second approach. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.