$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Robert Ramey (ramey_at_[hidden])
Date: 2006-09-26 21:57:22
It has been recently discovered that, contrary to intention and belief, archives are not currently thread-safe.
The issue is currently being investigated but a fix won't appear before version 1.35 - at the earliest.
In the mean time, perhaps you can avoid the issue by sycronizing access to archives.
Robert Ramey
  "Jeffrey Chang" <jeffrey8chang_at_[hidden]> wrote in message news:8782a5590609261636j3ee55435pe578c78290ec7d1c_at_mail.gmail.com...
  Robert:
  Yes, this program uses boost multi-thread library of "boost_thread-mgw-mt-d-1_33_1.dll".  boost::asio library (header only) is also used.
  --- Jeffrey
  On 9/26/06, Robert Ramey <ramey_at_[hidden]> wrote:
    Just out of curiosity? are you doing multi-threading?
    Robert Ramey
      "Jeffrey Chang" <jeffrey8chang_at_[hidden]> wrote in message news:8782a5590609261453p6f8542cfp2cb64d86754527c7_at_[hidden] ...
      Hi,
      I've been using boost Serialization library (release v1_33_1) on Linux without problems, with g++ compiler of both v3.3.6 & v4.1.1.  My program serialzes boost::shared_ptr of polymorphic types, and BOOST_CLASS_EXPORT() and BOOST_SERIALIZATION_SHARED_PTR() are used.   
      However, when the same program is ported & run on mingw32 (w/ g++ v3.4.5 on WinXP), it generates SIGSEGV before my main() is called.  and here's the stack trace:
      Program received signal SIGSEGV, Segmentation fault.
      0x6e3759a3 in boost::archive::detail::basic_serializer::basic_serializer (
          this=0x4, eti=@0x813484)
          at /opt/boost/boost_1_33_1/boost/archive/detail/basic_serializer.hpp:37
      37          {}
      (gdb) bt
      #0  0x6e3759a3 in boost::archive::detail::basic_serializer::basic_serializer (
          this=0x4, eti=@0x813484)
          at /opt/boost/boost_1_33_1/boost/archive/detail/basic_serializer.hpp:37
      #1  0x6e34220b in boost::archive::detail::basic_oserializer::basic_oserializer
          (this=0x0, eti=@0x813484)
          at /opt/boost/boost_1_33_1/libs/serialization/build/../src/basic_oserializer.cpp:24
      #2  0x005fb394 in boost::archive::detail::pointer_oserializer<HmcBase, boost::archive::text_oarchive>::pointer_oserializer (this=0x813164)
          at /opt/boost/boost_1_33_1/boost/serialization/extended_type_info_typeid.hpp:95
      #3  0x00477c12 in __static_initialization_and_destruction_1 (
          __initialize_p=8467588, __priority=65535)
          at /opt/boost/boost_1_33_1/boost/archive/detail/oserializer.hpp:198
      #4  0x004c5a57 in __main ()
          at /opt/boost/boost_1_33_1/boost/archive/detail/oserializer.hpp:198
      #5  0x00404568 in main (argc=1, argv=0x3d45f8) at ../../src/HmcMain.cpp:231
      (gdb)
      I cannot connect the logic between stack frame #3 and #2; it seems trying to instantiate some global static data when SIGSEGV happens.  Is there some dependency on order of global static data initialization  to be satisfied for using BOOST_CLASS_EXPORT/BOOST_SERIALIZATION_SHARED_PTR? HmcBase is the base class for my polymorphic types, and all my code are statically linked, while "boost_serialization-mgw-d-1_33_1.dll" is used here.    I saw some discussion in this mailing list on "Serializing classes defined in DLLs" a year ago, but don't know what's the current status on it and whether this case is related to it. 
      Thanks for any hit,
      --- Jeffrey
--------------------------------------------------------------------------
      _______________________________________________
      Boost-users mailing list
      Boost-users_at_[hidden]
      http://listarchives.boost.org/mailman/listinfo.cgi/boost-users
    _______________________________________________
    Boost-users mailing list
    Boost-users_at_[hidden]
    http://listarchives.boost.org/mailman/listinfo.cgi/boost-users
------------------------------------------------------------------------------
  _______________________________________________
  Boost-users mailing list
  Boost-users_at_[hidden]
  http://listarchives.boost.org/mailman/listinfo.cgi/boost-users