harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Gorr" <vvg...@gmail.com>
Subject Re: [drlvm] my latest round of patches broke something
Date Mon, 25 Sep 2006 10:14:08 GMT
On 9/25/06, Geir Magnusson Jr. <geir@pobox.com> wrote:
>
>
> On Sep 25, 2006, at 5:19 AM, Vladimir Gorr wrote:
>
> > As for me (and other people) a lot of tests fail for the latest
> > sources (revision 449592).
> > I've run the build.bat clean; build.bat update; build.bat command
> > in compliance with comments for H-1457.
> > It's very strange for me it mentions here all C-unit tests work
> > fine. Sorry I cannot confirm this.
>
> It certainly did on my machine after a clean - update build, and then
> hung on gc.LOS.
>
>
> > The detailed investigation showed the patch for H-1457 is
> > incorrect. I've attached a patch fixing this issue.
> > Thanks Evgueni Brevnov for preparing this patch. After applying
> > these changes the issue disappeared.
>
> Where is that patch?  it didn't make it through to list - can you
> just re-open 1457 and attach there?


Not I cannot due to  I have no permissions for this.
Our patch looks like this:

Index: apr_thread_ext.c
===================================================================
--- apr_thread_ext.c (revision 449604)
+++ apr_thread_ext.c (working copy)
@@ -28,14 +28,14 @@
 APR_DECLARE(apr_status_t) apr_thread_set_priority(apr_thread_t *thread,
                 apr_int32_t priority)
 {
-    HANDLE *os_thread;
+    apr_os_thread_t * os_thread;
     apr_status_t status;

-    if (status = apr_os_thread_get(&((apr_os_thread_t *)os_thread),
thread)) {
+    if (status = apr_os_thread_get(&os_thread, thread)) {
         return status;
     }

-    if (SetThreadPriority(*os_thread, (int)convert_priority(priority))) {
+    if (SetThreadPriority((HANDLE)os_thread,
(int)convert_priority(priority))) {
         return APR_SUCCESS;
     } else {
         return apr_get_os_error();
@@ -50,23 +50,24 @@

 // touch thread to flash memory
 APR_DECLARE(apr_status_t) apr_thread_yield_other(apr_thread_t* thread) {
-    HANDLE *os_thread = NULL;
+    apr_os_thread_t * os_thread = NULL;
     apr_status_t status;
-    if (status = apr_os_thread_get(&((apr_os_thread_t *)os_thread),
thread)) {
+    if (status = apr_os_thread_get(&os_thread, thread)) {
         return status;
     }
-        if(!os_thread) {
-//        printf ("detached thread\n");
-              return status;
-        }
-       //printf("suspending %d\n", *os_thread);
-    if(-1!=SuspendThread(*os_thread)) {
-         ResumeThread(*os_thread);
- //      printf("resuming %d\n", *os_thread);
-        } else {
-  //            printf("fail to suspend %d\n", *os_thread);
-        }
-  return APR_SUCCESS;
+    if(!os_thread) {
+        // printf ("detached thread\n");
+        return status;
+    }
+
+    // printf("suspending %d\n", *os_thread);
+    if(SuspendThread((HANDLE)os_thread) != -1) {
+        ResumeThread((HANDLE)os_thread);
+        // printf("resuming %d\n", *os_thread);
+    } else {
+        // printf("fail to suspend %d\n", *os_thread);
+    }
+    return APR_SUCCESS;
 }

 APR_DECLARE(void) apr_memory_rw_barrier() {
@@ -79,19 +80,19 @@
     FILETIME exitTime;
     FILETIME kernelTime;
     FILETIME userTime;
-    HANDLE *hThread;
+    apr_os_thread_t * os_thread;
     SYSTEMTIME sysTime;
     int res;
     __int64 xx;
     __int32 * pp;
     apr_status_t status;

-    if (status = apr_os_thread_get(&((apr_os_thread_t *)hThread), thread))
{
+    if (status = apr_os_thread_get(&os_thread, thread)) {
         return status;
     }

     res = GetThreadTimes(
-        *hThread,
+        (HANDLE)os_thread,
         &creationTime,
         &exitTime,
         &kernelTime,
@@ -125,13 +126,15 @@

 APR_DECLARE(apr_status_t) apr_get_thread_time(apr_thread_t *thread,
apr_int64_t* nanos_ptr)
 {
-    HANDLE *os_thread;
+    apr_os_thread_t * os_thread;
     apr_status_t status;
     FILETIME creation_time, exit_time, kernel_time, user_time;
-    if (status = apr_os_thread_get(&((apr_os_thread_t *)os_thread),
thread)!=APR_SUCCESS) {
+
+    status = apr_os_thread_get(&os_thread, thread);
+    if (status != APR_SUCCESS) {
         return status;
     }
-    GetThreadTimes(*os_thread, &creation_time,
+    GetThreadTimes((HANDLE)os_thread, &creation_time,
         &exit_time, &kernel_time,
         &user_time);

@@ -141,13 +144,15 @@
 }

 APR_DECLARE(apr_status_t) apr_thread_cancel(apr_thread_t *thread) {
-    HANDLE *os_thread;
+    apr_os_thread_t * os_thread;
     apr_status_t status;
-    if (status = apr_os_thread_get(&((apr_os_thread_t *)os_thread),
thread)) {
+
+    status = apr_os_thread_get(&os_thread, thread);
+    if (status != APR_SUCCESS) {
         return status;
     }

-    if (TerminateThread(*os_thread, 0)) {
+    if (TerminateThread((HANDLE)os_thread, 0)) {
         return APR_SUCCESS;
     } else {
         return apr_get_os_error();

Thanks,
Vladimir.




>
> > Geir, could you please look at this patch and apply it if there are
> > no objections?
> >
> > Thanks in advance,
> > Vladimir.
> >
> > On 9/24/06, Geir Magnusson Jr. <geir@pobox.com> wrote: Ok, I'm not
> > as worried - I went back a few days to r447025 and still
> > have the problem, so it's not from this morning.  I guess this has
> > been masked all along by the logger problem.  Noted in JIRA
> > HARMONY-1560
> >
> > geir
> >
> > On Sep 23, 2006, at 11:04 AM, Geir Magnusson Jr. wrote:
> >
> > > This is completely my fault.
> > >
> > > The latest round of patches, while I dutifully do smoke, c-unit and
> > > kernel tests for each patch, I didn't do any app testing.
> > >
> > > I tried to run ActiveMQ, and it breaks with an asset in
> > > object_handles.cpp : 99
> > >
> > > I'm going to back out the two GC patches I applied and hope for the
> > > best.
> > >
> > > geir
> > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-
> > help@incubator.apache.org
> > >
> >
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message