This is the mail archive of the
mailing list for the Cygwin project.
Re: Problem w/ c++,threads,static initializers
- From: Thomas Pfaff <tpfaff at gmx dot net>
- To: Rasmus Hahn <rassahah at neofonie dot de>
- Cc: cygwin <cygwin at cygwin dot com>
- Date: Tue, 10 Jun 2003 09:25:43 +0200
- Subject: Re: Problem w/ c++,threads,static initializers
- References: <20030607142449.A4909@hamburg.neofonie.local>
Rasmus Hahn wrote:
i am using cygwin on my Windows2000 and my c++ program segfaults
when using pthread-mutexes. In particular i am using a lot of
mutexes from within constructors of static objects. These constructors
are called at a very early time of execution of the program and do
calls of pthread_mutex_init, pthread_mutex_lock and such. Taken a glance
at the cygwin source i noticed that the static initializers (constructors
of static objects) are run _before_ some user_data->threadinterface is
initialized (look at dll_crt0_1 () in winsup/cygwin/dcrt0.cc). Isnt it
possible to use thread-functions from static initializers?
BTW i am using cygwin snapshot 20030602 compiled with gcc-3.3 since the
out-of-the-box gcc from the cygwin-package is a prerelease and definitely
contains bugs that do not allow it to compile my code.
Could you provide a test case ?
I have done some tests and my constructors are run from
do_global_ctors if they are in the executable and from
dll_list::init if they are in a dll.
In both cases they are run when the cygwin dll is completely initialized.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html