You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by dl...@apache.org on 2005/10/19 11:34:28 UTC
svn commit: r326504 -
/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadutil.c
Author: dlydick
Date: Wed Oct 19 02:34:20 2005
New Revision: 326504
URL: http://svn.apache.org/viewcvs?rev=326504&view=rev
Log:
Updated ARCH_xxx() macros for better diagnostic support.
Minor documentation adjustments.
Modified:
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadutil.c
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadutil.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadutil.c?rev=326504&r1=326503&r2=326504&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadutil.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadutil.c Wed Oct 19 02:34:20 2005
@@ -4,25 +4,29 @@
* @brief Utilities for operating the JVM thread state model on this
* real machine implementation.
*
- * @todo Timers for Thread.sleep() and Thread.wait() and Object.wait()
- * that use millisecond timers @e are supported. The variation
- * that supports higher resolution of milliseconds and nanoseconds
- * are @e not supported, but the millisecond version is used instead.
+ * @todo HARMONY-6-jvm-threadutil.c-1 Timers for Thread.sleep() and Thread.wait() and Object.wait()
+ * that use millisecond timers @e are supported. The variation
+ * that supports higher resolution of milliseconds and nanoseconds
+ * are @e not supported, but the millisecond version is used
+ * instead.
*
* @internal This file also serves the dual purpose as a catch-all for
- * development experiments. Due to the fact that the implementation
- * of the Java thread and the supporting rthread structure is deeply
- * embedded in the core of the development of this software, this
- * file has contents that come and go during development. Some
- * functions get staged here before deciding where they @e really
- * go; some are interim functions for debugging, some were glue
- * that eventually went away. Be careful to remove prototypes
- * to such functions from the appropriate header file.
+ * development experiments. Due to the fact that the
+ * implementation of the Java thread and the supporting
+ * rthread structure is deeply embedded in the core of the
+ * development of this software, this file has contents that
+ * come and go during development. Some functions get staged
+ * here before deciding where they @e really go; some are
+ * interim functions for debugging, some were glue that
+ * eventually went away. Be careful to remove prototypes
+ * to such functions from the appropriate header file.
*
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -46,6 +50,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -53,7 +58,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(threadutil, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(threadutil, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
@@ -77,12 +84,14 @@
* @b Parameters: @link #rvoid rvoid@endlink
*
*
- * @returns @link #rvoid rvoid@endlink
+ * @returns @link #rvoid rvoid@endlink
*
*/
rvoid threadutil_update_sleeptime_interval(rvoid)
{
+ ARCH_FUNCTION_NAME(threadutil_update_sleeptime_interval);
+
jvm_thread_index thridx;
/* Lock out the @e world during timer update */
@@ -205,8 +214,8 @@
* CAVEAT EMPTOR: Those two functions are deprecated. Use
* at your own risk!
*
- * @todo Interruptible from class
- * @c @b java.nio.channels.InterruptibleChannel
+ * @todo HARMONY-6-jvm-threadutil.c-2 Interruptible from class
+ * @c @b java.nio.channels.InterruptibleChannel
*
*
* @param thridxcurr Thread for which to examine state changes
@@ -218,6 +227,8 @@
rvoid threadutil_update_blockingevents(jvm_thread_index thridxcurr)
{
+ ARCH_FUNCTION_NAME(threadutil_update_blockingevents);
+
/* Only examine INUSE threads in selected states */
if (!(THREAD_STATUS_INUSE & THREAD(thridxcurr).status))
{
@@ -229,7 +240,10 @@
case THREAD_STATE_COMPLETE: /* Untimed/untimed Thread.join() */
case THREAD_STATE_BLOCKED: /* Thread.sleep() and */
- /*! @todo interruptible I/O req's*/
+ /*! @todo
+ * HARMONY-6-jvm-threadutil.c-3
+ * interruptible I/O req's
+ */
default: /* Not meaningful for this logic */
return;
@@ -262,7 +276,10 @@
}
else
- /*! @todo First pass guess at interruptible I/O */
+ /*!
+ * @todo HARMONY-6-jvm-threadutil.c-4 First pass guess at
+ * interruptible I/O
+ */
if ((THREAD_STATE_BLOCKED == THREAD(thridxcurr).this_state) &&
(THREAD_STATUS_INTERRUPTIBLEIO & THREAD(thridxcurr).status))
{
@@ -270,8 +287,8 @@
* Check if Thread.interrupt() was thrown
* against the interruptible I/O operation on this thread.
*
- * @todo Is this the correct way to handle
- * interruptible I/O events?
+ * @todo HARMONY-6-jvm-threadutil.c-5 Is this the correct way
+ * to handle interruptible I/O events?
* Also need to throw the exception in JVM outer loop.
*/
if (THREAD_STATUS_INTERRUPTED & THREAD(thridxcurr).status)
@@ -393,6 +410,8 @@
rvoid threadutil_update_wait(jvm_thread_index thridxcurr)
{
+ ARCH_FUNCTION_NAME(threadutil_update_wait);
+
/* Only examine INUSE threads in WAIT state */
if (!(THREAD_STATUS_INUSE & THREAD(thridxcurr).status))
{
@@ -497,6 +516,8 @@
rvoid threadutil_update_lock(jvm_thread_index thridxcurr)
{
+ ARCH_FUNCTION_NAME(threadutil_update_lock);
+
/* Only examine INUSE threads in LOCK state */
if (!(THREAD_STATUS_INUSE & THREAD(thridxcurr).status))
{
@@ -560,6 +581,8 @@
rboolean threadutil_holds_lock(jvm_thread_index thridx,
jvm_object_hash objhashlock)
{
+ ARCH_FUNCTION_NAME(threadutil_holds_lock);
+
/*
* Make sure thread and object are both in use,
* make sure object is locked, then do @b BIDIRECTIONAL check