<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Dynamic loading/unloading of opengl32.dll results in a deadlock"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76252#c8">Comment # 8</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Dynamic loading/unloading of opengl32.dll results in a deadlock"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76252">bug 76252</a>
              from <span class="vcard"><a class="email" href="mailto:jfonseca@vmware.com" title="José Fonseca <jfonseca@vmware.com>"> <span class="fn">José Fonseca</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=76252#c7">comment #7</a>)
<span class="quote">> A colleaque had another idea:
> We export stw_cleanup and call it before unloading the dll. This seems to
> work very well and shuts down the threads as expected.

> If you don't see any problems with this approach, we could live with this
> workaround.</span >

Yes, that should work, but I think that my other solution:

  "One alternative would be to replace in lp_rast_destroy() the following code

     /* Wait for threads to terminate before cleaning up per-thread data */
     for (i = 0; i < rast->num_threads; i++) {
        pipe_thread_wait(rast->threads[i]);
     }

  with a signal, i.e., instead of waiting for the threads to finish, simply
wait     for the threads to signal they are ready to finish, which should
happend concurrently with DllMain."

Is more general, and would avoid leaking internal implementation details
outside.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>