public inbox for pthreads-win32@sourceware.org
 help / color / mirror / Atom feed
* invalid page fault when using LoadLibrary/FreeLibrary
@ 1999-11-06 10:37 Todd Owen
  0 siblings, 0 replies; 3+ messages in thread
From: Todd Owen @ 1999-11-06 10:37 UTC (permalink / raw)
  To: pthreads-win32

hi,
for me, pthread.dll consistently causes an "invalid page fault in
kernel32.dll" when I load it "explicitly"...to be precise, loading (with
LoadLibrary) isn't a problem, it gives the error when I call FreeLibrary.
I guess that the dll's cleanup must be causing the error.

Implicit linkage of the dll has never given me this problem.  Here's a
program (console application) that gives me the error:


#include <windows.h>
int main() {
  HINSTANCE hinst;

  hinst = LoadLibrary("pthread");
  printf("hinst == %d\n", hinst);
  printf("press a key to keel over...\n");
  getch();

  FreeLibrary(hinst);
  return 0;
}


I compile with: mingw32 (gcc-2.95 release), with the MSVCRT add-on (not
  that the compiler should make much difference in this case).
PTHREAD.DLL: is the precompiled 1999-11-02 one (I tried an older one as
  well, with the same result).

Fascinatingly, if you have your own dll (mycode.dll) which implicitly
loads pthread.dll, and then do LoadLibrary/FreeLibrary on _this_ dll, the
same thing happens.

Sorry, but I have no idea how to fix the problem.  It's taken me long
enough to track it down this far.

Todd.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: invalid page fault when using LoadLibrary/FreeLibrary
  1999-11-09  5:29 Bossom, John
@ 1999-11-09  6:17 ` Todd Owen
  0 siblings, 0 replies; 3+ messages in thread
From: Todd Owen @ 1999-11-09  6:17 UTC (permalink / raw)
  To: pthreads-win32

On Tue, 9 Nov 1999, John Bossom wrote:
> Why are you dynamically loading and freeing the library?

Actually, it's not my code which does it.  This was just the simplest
situation where the problem occurred, the real context was more
complicated: I was compiling my own dll which was linked to pthread.dll,
and my dll was being used by a visual basic program.  VB was loading _my_
dll with LoadLibrary/FreeLibrary but pthread.dll was still suffering the
problem.

Anyhow, looks like the problem is caused by a bug in windows 95 (see
http://support.microsoft.com/support/kb/articles/Q187/6/84.asp ).  I've
sent a simple patch to Ross.  Email me if you want to know more.

Todd.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: invalid page fault when using LoadLibrary/FreeLibrary
@ 1999-11-09  5:29 Bossom, John
  1999-11-09  6:17 ` Todd Owen
  0 siblings, 1 reply; 3+ messages in thread
From: Bossom, John @ 1999-11-09  5:29 UTC (permalink / raw)
  To: 'Todd Owen', pthreads-win32

Why are you dynamically loading and freeing the library?

You are circumventing the functionality of the library by
doing so.  This PThreads implementation relies on the 
functionality of DllMain. The hooks for thread cleanup, etc
are through leveraging this function. By calling FreeLibrary,
you are invalidating this functionality.

John.

-----Original Message-----
From: Todd Owen [ mailto:towen@lucidcalm.dropbear.id.au ]
Sent: Saturday, November 06, 1999 1:31 PM
To: pthreads-win32@sourceware.cygnus.com
Subject: invalid page fault when using LoadLibrary/FreeLibrary


hi,
for me, pthread.dll consistently causes an "invalid page fault in
kernel32.dll" when I load it "explicitly"...to be precise, loading (with
LoadLibrary) isn't a problem, it gives the error when I call FreeLibrary.
I guess that the dll's cleanup must be causing the error.

Implicit linkage of the dll has never given me this problem.  Here's a
program (console application) that gives me the error:


#include <windows.h>
int main() {
  HINSTANCE hinst;

  hinst = LoadLibrary("pthread");
  printf("hinst == %d\n", hinst);
  printf("press a key to keel over...\n");
  getch();

  FreeLibrary(hinst);
  return 0;
}


I compile with: mingw32 (gcc-2.95 release), with the MSVCRT add-on (not
  that the compiler should make much difference in this case).
PTHREAD.DLL: is the precompiled 1999-11-02 one (I tried an older one as
  well, with the same result).

Fascinatingly, if you have your own dll (mycode.dll) which implicitly
loads pthread.dll, and then do LoadLibrary/FreeLibrary on _this_ dll, the
same thing happens.

Sorry, but I have no idea how to fix the problem.  It's taken me long
enough to track it down this far.

Todd.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1999-11-09  6:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-11-06 10:37 invalid page fault when using LoadLibrary/FreeLibrary Todd Owen
1999-11-09  5:29 Bossom, John
1999-11-09  6:17 ` Todd Owen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).