On 9/25/06, Geir Magnusson Jr. <[EMAIL PROTECTED]> 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. <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
> > For additional commands, e-mail: harmony-dev-
> [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to