[thread] #2739 shouldn't at_thread_exit work on the main thread?

Hi, Anthony, I have submitted a patch that makes a regression on the test test_tss. My patch was related to add a atexit call for the main thread when make_external_thread_data is called, but it adds also for the thread created with native threads. So the patch don't work. Is there a way to make a difference between the main thread and the others? BTW the test fails on cygwin gcc 3.6.4, could someone test it on Windows or Linux to see if this is specific to cygwin? Thanks, _____________________ Vicente Juan Botet Escribá

On 05/30/09 05:20, vicente.botet wrote: [snip]
BTW the test fails on cygwin gcc 3.6.4, could someone test it on Windows or Linux to see if this is specific to cygwin?
Vincente, The patch: https://svn.boost.org/trac/boost/attachment/ticket/2739/2739.patch contains at the top: //<--2739.patch-- Index: thread.cpp =================================================================== --- thread.cpp (revision 53346) +++ thread.cpp (working copy) @@ -24,8 +24,11 @@ #include "timeconv.inl" //>--2739.patch-- which says the patched file is thread.cpp; however, a find for that file turned up: <--find thread.cpp-- -*- mode: compilation; default-directory: "~/prog_dev/boost-svn/ro/boost-trunk/libs/" -*- Compilation started at Sat May 30 22:23:35 find . -name thread.cpp ./thread/example/thread.cpp ./thread/src/pthread/thread.cpp ./thread/src/win32/thread.cpp Compilation finished at Sat May 30 22:23:46
--find thread.cpp--
So, which thread.cpp is the patch for? Of course I'm probably missing something obvious :( Straighten me out and I'll try a linux test. -regards, Larry

AMDG Larry Evans wrote:
The patch:
https://svn.boost.org/trac/boost/attachment/ticket/2739/2739.patch
contains at the top: //<--2739.patch-- Index: thread.cpp
<snip> find . -name thread.cpp ./thread/example/thread.cpp ./thread/src/pthread/thread.cpp ./thread/src/win32/thread.cpp
Compilation finished at Sat May 30 22:23:46
--find thread.cpp--
So, which thread.cpp is the patch for?
Of course I'm probably missing something obvious :( Straighten me out and I'll try a linux test.
Indeed. Vincente, I generally find that it is easiest to make a patch containing everything including the tests, that can be applied directly from the main boost directory. In Christ, Steven Watanabe

Hi, ----- Original Message ----- From: "Steven Watanabe" <watanabesj@gmail.com> To: <boost@lists.boost.org> Sent: Sunday, May 31, 2009 6:03 AM Subject: Re: [boost] [thread] #2739 shouldn't at_thread_exit work on the main thread?
AMDG
Larry Evans wrote:
The patch:
https://svn.boost.org/trac/boost/attachment/ticket/2739/2739.patch
contains at the top: //<--2739.patch-- Index: thread.cpp
<snip> find . -name thread.cpp ./thread/example/thread.cpp ./thread/src/pthread/thread.cpp ./thread/src/win32/thread.cpp
Compilation finished at Sat May 30 22:23:46
--find thread.cpp--
So, which thread.cpp is the patch for?
Of course I'm probably missing something obvious :( Straighten me out and I'll try a linux test.
Indeed. Vincente, I generally find that it is easiest to make a patch containing everything including the tests, that can be applied directly from the main boost directory.
OK, I will do like you propose next time. The thread.cpp file corresponds to ./thread/src/pthread/thread.cpp. Vicente

On 05/31/09 04:01, vicente.botet wrote: [snip]
OK, I will do like you propose next time. The thread.cpp file corresponds to ./thread/src/pthread/thread.cpp.
Here's what I did. 1) downloaded: https://svn.boost.org/trac/boost/export/53346/trunk/libs/thread/src/pthread/... to my boost-trunk directory: -*- mode: compilation; default-directory: "~/prog_dev/boost-svn/ro/boost-trunk/" -*- Compilation started at Sun May 31 06:44:20 svn info Path: . URL: http://svn.boost.org/svn/boost/trunk Repository Root: http://svn.boost.org/svn/boost Repository UUID: b8fc166d-592f-0410-95f2-cb63ce0dd405 Revision: 53106 Node Kind: directory Schedule: normal Last Changed Author: steven_watanabe Last Changed Rev: 53105 Last Changed Date: 2009-05-18 22:00:53 -0500 (Mon, 18 May 2009) Compilation finished at Sun May 31 06:44:20 so that thread.cpp, revision 53346, overwrote whatever was in the trunk (which, as shown above, was revision 53106). Then I applied the patch. Then created directory: /boost-trunk/libs/thread/test_patches: to which I copied your test_ticket_2739.cpp. Then cp'ed the libs/thread/test/Jamfile.v2 to the test_patches and changed the tests-suite target to: test-suite "threads" : [ thread-run test_ticket_2739.cpp ] ; Then ran with bjam: -*- mode: compilation; default-directory: "~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches/" -*- Compilation started at Sun May 31 06:50:58 bjam sh: icpc: not found docutils-dir= tools-dir= /usr/bin/rst2html.py ...patience... ...found 1062 targets... ...updating 8 targets... gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739 testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run **passed** ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.test gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run **passed** ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.test ...updated 8 targets... Compilation finished at Sun May 31 06:51:07

Hi, ----- Original Message ----- From: "Larry Evans" <cppljevans@suddenlink.net> To: <boost@lists.boost.org> Sent: Sunday, May 31, 2009 1:52 PM Subject: Re: [boost] [thread] #2739 shouldn't at_thread_exit work on themain thread?
On 05/31/09 04:01, vicente.botet wrote: [snip]
OK, I will do like you propose next time. The thread.cpp file corresponds to ./thread/src/pthread/thread.cpp.
Here's what I did.
1) downloaded:
https://svn.boost.org/trac/boost/export/53346/trunk/libs/thread/src/pthread/...
to my boost-trunk directory:
-*- mode: compilation; default-directory: "~/prog_dev/boost-svn/ro/boost-trunk/" -*- Compilation started at Sun May 31 06:44:20
svn info Path: . URL: http://svn.boost.org/svn/boost/trunk Repository Root: http://svn.boost.org/svn/boost Repository UUID: b8fc166d-592f-0410-95f2-cb63ce0dd405 Revision: 53106 Node Kind: directory Schedule: normal Last Changed Author: steven_watanabe Last Changed Rev: 53105 Last Changed Date: 2009-05-18 22:00:53 -0500 (Mon, 18 May 2009)
Compilation finished at Sun May 31 06:44:20
so that thread.cpp, revision 53346, overwrote whatever was in the trunk (which, as shown above, was revision 53106).
Then I applied the patch. Then created directory:
/boost-trunk/libs/thread/test_patches:
to which I copied your test_ticket_2739.cpp. Then cp'ed the libs/thread/test/Jamfile.v2 to the test_patches and changed the tests-suite target to:
test-suite "threads" : [ thread-run test_ticket_2739.cpp ] ;
Then ran with bjam:
-*- mode: compilation; default-directory: "~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches/" -*- Compilation started at Sun May 31 06:50:58
bjam sh: icpc: not found docutils-dir= tools-dir= /usr/bin/rst2html.py ...patience... ...found 1062 targets... ...updating 8 targets... gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739 testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run **passed** ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.test gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run **passed** ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.test ...updated 8 targets...
Compilation finished at Sun May 31 06:51:07
As I said in another post, the patch is not correct. So please do not apply it. The test case is not currently neither good because the test succeeds even if mycallable2() is not called . In order to test this the operator()() should contains an abort when the called. struct mycallable2 { void operator()() const { mycallable2_called=true; std::cout << "mycallable2" << std::endl; ***** abort() }; }; And the Jamfile should the contain rule thread-run-fail ( sources ) { return [ run-fail $(sources) ../build//boost_thread ] [ run-fail $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static : : : : $(sources[1]:B)_lib ] ; } test-suite "threads" : [ thread-run-fail test_ticket_2739.cpp ] ; Whithout these modification you can inspect the .output file on the bin.v2 directory and see if the trace "mycallable2" appears. Could you run the test case without applying the patch and send the output? Thanks, Vicente

On 05/31/09 07:39, vicente.botet wrote: [snip]
As I said in another post, the patch is not correct. So please do not apply it.
I must have overlooked that post ;(
The test case is not currently neither good because the test succeeds even if mycallable2() is not called . In order to test this the operator()() should contains an abort when the called.
struct mycallable2 { void operator()() const { mycallable2_called=true; std::cout << "mycallable2" << std::endl; ***** abort() }; };
And the Jamfile should the contain
rule thread-run-fail ( sources ) { return [ run-fail $(sources) ../build//boost_thread ] [ run-fail $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static : : : : $(sources[1]:B)_lib ] ; }
test-suite "threads" : [ thread-run-fail test_ticket_2739.cpp ] ;
Whithout these modification you can inspect the .output file on the bin.v2 directory and see if the trace "mycallable2" appears. Could you run the test case without applying the patch and send the output?
OK, I tried it by first rm'ing th patched thread.cpp, then doing svn update for whole trunk. Then did bjam in test_patches. This is all shown in attachment. Welcome to the Emacs shell ~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ cd ../../.. ~/prog_dev/boost-svn/ro/boost-trunk $ svn update At revision 53500. ~/prog_dev/boost-svn/ro/boost-trunk $ cd libs/thread/test/ ~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test $ rcsdiff Jamfile.v2 rcsdiff: RCS/Jamfile.v2,v: No such file or directory ~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test $ cd ../test_patches/ ~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ rcsdiff Jamfile.v2 =================================================================== RCS file: RCS/Jamfile.v2,v retrieving revision 1.2 diff -r1.2 Jamfile.v2 26c26 < rule thread-run ( sources ) ---
rule thread-run-fail ( sources ) 29,30c29,30 < [ run $(sources) ../build//boost_thread ] < [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static
[ run-fail $(sources) ../build//boost_thread ] [ run-fail $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static
37c37 < : [ thread-run test_ticket_2739.cpp ] ---
: [ thread-run-fail test_ticket_2739.cpp ]
~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ rcsdiff test_ticket_2739.cpp =================================================================== RCS file: RCS/test_ticket_2739.cpp,v retrieving revision 1.1 diff -r1.1 test_ticket_2739.cpp 26c26 < //BOOST_CHECK(false && "mycallable2 has been called"); ---
abort();
~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ bjam sh: icpc: not found docutils-dir= tools-dir= /usr/bin/rst2html.py ...patience... ...found 1064 targets... ...updating 10 targets... gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739 testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run LD_LIBRARY_PATH=/home/evansl/prog_dev/boost-svn/ro/boost-trunk/bin.v2/libs/thread/build/gcc-4.2/debug/threading-multi:/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739" > "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" 2>&1 status=$? echo >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" echo ====== END OUTPUT ====== fi exit $status ..failed testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run... ...removing ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run LD_LIBRARY_PATH=/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib" > "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" 2>&1 status=$? echo >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" echo ====== END OUTPUT ====== fi exit $status ..failed testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run... ...removing ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run ...failed updating 2 targets... ...skipped 4 targets... ...updated 4 targets... ~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ cat ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output Running 1 test case... mycallable1 *** No errors detected EXIT STATUS: 0 ~/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $

----- Original Message ----- From: "Larry Evans" <cppljevans@suddenlink.net> To: <boost@lists.boost.org> Sent: Sunday, May 31, 2009 5:40 PM Subject: Re: [boost] [thread] #2739 shouldn't at_thread_exit work on themainthread?
On 05/31/09 07:39, vicente.botet wrote: [snip]
As I said in another post, the patch is not correct. So please do not apply it.
I must have overlooked that post ;(
The test case is not currently neither good because the test succeeds even if mycallable2() is not called . In order to test this the operator()() should contains an abort when the called.
struct mycallable2 { void operator()() const { mycallable2_called=true; std::cout << "mycallable2" << std::endl; ***** abort() }; };
And the Jamfile should the contain
rule thread-run-fail ( sources ) { return [ run-fail $(sources) ../build//boost_thread ] [ run-fail $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static : : : : $(sources[1]:B)_lib ] ; }
test-suite "threads" : [ thread-run-fail test_ticket_2739.cpp ] ;
Whithout these modification you can inspect the .output file on the bin.v2 directory and see if the trace "mycallable2" appears. Could you run the test case without applying the patch and send the output?
OK, I tried it by first rm'ing th patched thread.cpp, then doing svn update for whole trunk. Then did bjam in test_patches.
This is all shown in attachment.
Thanks Larry for the informations. The fact the program fails let me think that in your platform the bug is not present, as the function is called. To be sure you can remove the abort and check that the file test_ticket_2739.output in the directory bin.v2/libs/thread/test_tickets/test_ticket_2739/ ... contains the line "mycallable2". On which platform are you testing? with which standard Clib? Vicente

On 05/31/09 11:43, vicente.botet wrote: [snip]
Thanks Larry for the informations. The fact the program fails let me think that in your platform the bug is not present, as the function is called. To be sure you can remove the abort and check that the file test_ticket_2739.output in the directory bin.v2/libs/thread/test_tickets/test_ticket_2739/ ... contains the line "mycallable2".
Done. Results in the attachment.
On which platform are you testing?
Also in attachment after line containing #platform.
with which standard Clib?
My synaptic screen shows: Package: libc6 GNU C Library: Shared libraries installed Version Version: 2.7-10ubuntu4 HTH. -Larry Welcome to the Emacs shell /home/evansl/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ rcsdiff test_ticket_2739.cpp =================================================================== RCS file: RCS/test_ticket_2739.cpp,v retrieving revision 1.2 diff -r1.2 test_ticket_2739.cpp 26d25 < abort(); /home/evansl/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ bjam sh: icpc: not found docutils-dir= tools-dir= /usr/bin/rst2html.py ...patience... ...found 1064 targets... ...updating 10 targets... gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739 testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run LD_LIBRARY_PATH=/home/evansl/prog_dev/boost-svn/ro/boost-trunk/bin.v2/libs/thread/build/gcc-4.2/debug/threading-multi:/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739" > "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" 2>&1 status=$? echo >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.output" echo ====== END OUTPUT ====== fi exit $status ...failed testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run... ...removing ../../../bin.v2/libs/thread/test_patches/test_ticket_2739.test/gcc-4.2/debug/threading-multi/test_ticket_2739.run gcc.compile.c++ ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739.o gcc.link ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run LD_LIBRARY_PATH=/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib" > "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" 2>&1 status=$? echo >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output" echo ====== END OUTPUT ====== fi exit $status ...failed testing.capture-output ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run... ...removing ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.run ...failed updating 2 targets... ...skipped 4 targets... ...updated 4 targets... /home/evansl/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ cat ../../../bin.v2/libs/thread/test_patches/test_ticket_2739_lib.test/gcc-4.2/debug/threading-multi/test_ticket_2739_lib.output Running 1 test case... mycallable1 *** No errors detected EXIT STATUS: 0 /home/evansl/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ #platform /home/evansl/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $ uname -a Linux evansl-desktop 2.6.24-24-generic #1 SMP Wed Apr 15 15:11:35 UTC 2009 x86_64 GNU/Linux /home/evansl/prog_dev/boost-svn/ro/boost-trunk/libs/thread/test_patches $

----- Original Message ----- From: "Larry Evans" <cppljevans@suddenlink.net> To: <boost@lists.boost.org> Sent: Sunday, May 31, 2009 7:29 PM Subject: Re: [boost] [thread] #2739 shouldn't at_thread_exit work onthemainthread?
On 05/31/09 11:43, vicente.botet wrote: [snip]
Thanks Larry for the informations. The fact the program fails let me think that in your platform the bug is not present, as the function is called. To be sure you can remove the abort and check that the file test_ticket_2739.output in the directory bin.v2/libs/thread/test_tickets/test_ticket_2739/ ... contains the line "mycallable2".
Done. Results in the attachment.
On which platform are you testing?
Also in attachment after line containing #platform.
with which standard Clib?
My synaptic screen shows:
Package: libc6 GNU C Library: Shared libraries
installed Version
Version: 2.7-10ubuntu4
Thanks, It seems that the bug is also present for linux so I suppose that at least the problem is POSIX related. Could someone test it on Windows? Vicente
participants (3)
-
Larry Evans
-
Steven Watanabe
-
vicente.botet