Ticket #6843: boost-future-intel-fix-20120421-0519.patch

File boost-future-intel-fix-20120421-0519.patch, 1.6 KB (added by Joshua Boyce <raptorfactor@…>, 10 years ago)

Fist patch. Massive hack. Needs improvement.

  • boost/thread/future.hpp

     
    11201120        void lazy_init()
    11211121        {
    11221122#if defined BOOST_THREAD_PROMISE_LAZY
     1123
     1124#if defined(BOOST_INTEL)
     1125
     1126#pragma push_macro("atomic_load")
     1127#undef atomic_load
     1128
     1129#pragma push_macro("atomic_compare_exchange")
     1130#undef atomic_compare_exchange
     1131
     1132#endif // #if defined(BOOST_INTEL)
     1133
    11231134            if(!atomic_load(&future_))
    11241135            {
    11251136                future_ptr blank;
    11261137                atomic_compare_exchange(&future_,&blank,future_ptr(new detail::future_object<R>));
    11271138            }
     1139           
     1140#if defined(BOOST_INTEL)
     1141
     1142#pragma pop_macro("atomic_load")
     1143#pragma pop_macro("atomic_compare_exchange")
     1144
     1145#endif // #if defined(BOOST_INTEL)
     1146
    11281147#endif
    11291148        }
    11301149
     
    12791298        void lazy_init()
    12801299        {
    12811300#if defined BOOST_THREAD_PROMISE_LAZY
     1301
     1302#if defined(BOOST_INTEL)
     1303
     1304#pragma push_macro("atomic_load")
     1305#undef atomic_load
     1306
     1307#pragma push_macro("atomic_compare_exchange")
     1308#undef atomic_compare_exchange
     1309
     1310#endif // #if defined(BOOST_INTEL)
     1311
    12821312            if(!atomic_load(&future_))
    12831313            {
    12841314                future_ptr blank;
    12851315                atomic_compare_exchange(&future_,&blank,future_ptr(new detail::future_object<void>));
    12861316            }
     1317           
     1318#if defined(BOOST_INTEL)
     1319
     1320#pragma pop_macro("atomic_load")
     1321#pragma pop_macro("atomic_compare_exchange")
     1322
     1323#endif // #if defined(BOOST_INTEL)
     1324
    12871325#endif
    12881326        }
    12891327    public: