daily pastebin goal
61%
SHARE
TWEET

Untitled

a guest Jun 12th, 2018 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ==36369== Helgrind, a thread error detector
  2. ==36369== Copyright (C) 2007-2013, and GNU GPL'd, by OpenWorks LLP et al.
  3. ==36369== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
  4. ==36369== Command: ./chai_thread
  5. ==36369==
  6. ==36369== ---Thread-Announcement------------------------------------------
  7. ==36369==
  8. ==36369== Thread #4 was created
  9. ==36369==    at 0x37D78E899E: clone (in /lib64/libc-2.12.so)
  10. ==36369==    by 0x37D80068BF: do_clone.clone.0 (in /lib64/libpthread-2.12.so)
  11. ==36369==    by 0x37D8006DA1: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
  12. ==36369==    by 0x4A0C7F8: ??? (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  13. ==36369==    by 0x4A0C907: pthread_create@* (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  14. ==36369==    by 0x37E38B65A6: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib64/libstdc++.so.6.0.13)
  15. ==36369==    by 0x447A6B: std::thread::thread<void (&)()>(void (&)()) (in /home/pbpddev/Documents/Test/chai_thread)
  16. ==36369==    by 0x40680F: main (in /home/pbpddev/Documents/Test/chai_thread)
  17. ==36369==
  18. ==36369== ---Thread-Announcement------------------------------------------
  19. ==36369==
  20. ==36369== Thread #3 was created
  21. ==36369==    at 0x37D78E899E: clone (in /lib64/libc-2.12.so)
  22. ==36369==    by 0x37D80068BF: do_clone.clone.0 (in /lib64/libpthread-2.12.so)
  23. ==36369==    by 0x37D8006DA1: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
  24. ==36369==    by 0x4A0C7F8: ??? (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  25. ==36369==    by 0x4A0C907: pthread_create@* (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  26. ==36369==    by 0x37E38B65A6: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib64/libstdc++.so.6.0.13)
  27. ==36369==    by 0x447A6B: std::thread::thread<void (&)()>(void (&)()) (in /home/pbpddev/Documents/Test/chai_thread)
  28. ==36369==    by 0x40680F: main (in /home/pbpddev/Documents/Test/chai_thread)
  29. ==36369==
  30. ==36369== ----------------------------------------------------------------
  31. ==36369==
  32. ==36369== Possible data race during read of size 8 at 0x9001D0 by thread #4
  33. ==36369== Locks held: none
  34. ==36369==    at 0x489860: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_begin() const (in /home/pbpddev/Documents/Test/chai_thread)
  35. ==36369==    by 0x46403D: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  36. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  37. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  38. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  39. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  40. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  41. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  42. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  43. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  44. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  45. ==36369==    by 0x41ADAA: chaiscript::ChaiScript_Basic::do_eval(std::string const&, std::string const&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  46. ==36369==
  47. ==36369== This conflicts with a previous write of size 8 by thread #3
  48. ==36369== Locks held: none
  49. ==36369==    at 0x4896C9: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_Rb_tree_impl<std::less<std::string>, true>::_Rb_tree_impl(std::less<std::string> const&, std::allocator<std::_Rb_tree_node<std::string> >&&) (in /home/pbpddev/Documents/Test/chai_thread)
  50. ==36369==    by 0x463EC6: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_Rb_tree(std::less<std::string> const&, std::allocator<std::string> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  51. ==36369==    by 0x439B1B: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::set(std::initializer_list<std::string>, std::less<std::string> const&, std::allocator<std::string> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  52. ==36369==    by 0x417982: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  53. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  54. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  55. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  56. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  57. ==36369==
  58. ==36369== ----------------------------------------------------------------
  59. ==36369==
  60. ==36369== Lock at 0x6430A38 was first observed
  61. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  62. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  63. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  64. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  65. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  66. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  67. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  68. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  69. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  70. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  71. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  72. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  73. ==36369==
  74. ==36369== Possible data race during read of size 8 at 0x4CD3EE0 by thread #4
  75. ==36369== Locks held: none
  76. ==36369==    at 0x37E389C473: std::string::compare(std::string const&) const (in /usr/lib64/libstdc++.so.6.0.13)
  77. ==36369==    by 0x473748: bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  78. ==36369==    by 0x4485CC: std::less<std::string>::operator()(std::string const&, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  79. ==36369==    by 0x4898B3: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_lower_bound(std::_Rb_tree_node<std::string> const*, std::_Rb_tree_node<std::string> const*, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  80. ==36369==    by 0x464056: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  81. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  82. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  83. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  84. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  85. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  86. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  87. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  88. ==36369==
  89. ==36369== This conflicts with a previous write of size 8 by thread #3
  90. ==36369== Locks held: 1, at address 0x6430A38
  91. ==36369==    at 0x447FF3: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  92. ==36369==    by 0x42F6BB: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  93. ==36369==    by 0x408CCE: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value&&) (in /home/pbpddev/Documents/Test/chai_thread)
  94. ==36369==    by 0x410DC7: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  95. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  96. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  97. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  98. ==36369==    by 0x4A1BB2: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy_a<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value> >(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> >&) (in /home/pbpddev/Documents/Test/chai_thread)
  99. ==36369==
  100. ==36369== Address 0x4CD3EE0 is 32 bytes inside a block of size 40 alloc'd
  101. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  102. ==36369==    by 0x4D863F: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::allocate(unsigned long, void const*) (in /home/pbpddev/Documents/Test/chai_thread)
  103. ==36369==    by 0x4CC36C: std::allocator_traits<std::allocator<std::_Rb_tree_node<std::string> > >::allocate(std::allocator<std::_Rb_tree_node<std::string> >&, unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  104. ==36369==    by 0x4BBC4C: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_get_node() (in /home/pbpddev/Documents/Test/chai_thread)
  105. ==36369==    by 0x4A6ACE: std::_Rb_tree_node<std::string>* std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_create_node<std::string const&>(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  106. ==36369==    by 0x48C356: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_<std::string const&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  107. ==36369==    by 0x48979E: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique_<std::string const&>(std::_Rb_tree_const_iterator<std::string>, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  108. ==36369==    by 0x463F45: void std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique<std::string const*>(std::string const*, std::string const*) (in /home/pbpddev/Documents/Test/chai_thread)
  109. ==36369==    by 0x439B57: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::set(std::initializer_list<std::string>, std::less<std::string> const&, std::allocator<std::string> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  110. ==36369==    by 0x417982: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  111. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  112. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  113. ==36369==
  114. ==36369== ----------------------------------------------------------------
  115. ==36369==
  116. ==36369== Lock at 0x6430A38 was first observed
  117. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  118. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  119. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  120. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  121. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  122. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  123. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  124. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  125. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  126. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  127. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  128. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  129. ==36369==
  130. ==36369== Possible data race during read of size 8 at 0x4CD3530 by thread #4
  131. ==36369== Locks held: none
  132. ==36369==    at 0x37E389C479: std::string::compare(std::string const&) const (in /usr/lib64/libstdc++.so.6.0.13)
  133. ==36369==    by 0x473748: bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  134. ==36369==    by 0x4485CC: std::less<std::string>::operator()(std::string const&, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  135. ==36369==    by 0x4898B3: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_lower_bound(std::_Rb_tree_node<std::string> const*, std::_Rb_tree_node<std::string> const*, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  136. ==36369==    by 0x464056: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  137. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  138. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  139. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  140. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  141. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  142. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  143. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  144. ==36369==
  145. ==36369== This conflicts with a previous write of size 8 by thread #3
  146. ==36369== Locks held: 1, at address 0x6430A38
  147. ==36369==    at 0x5E0271: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&) (in /home/pbpddev/Documents/Test/chai_thread)
  148. ==36369==    by 0x410DAC: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  149. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  150. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  151. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  152. ==36369==    by 0x4A1BB2: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy_a<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value> >(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> >&) (in /home/pbpddev/Documents/Test/chai_thread)
  153. ==36369==    by 0x4889EA: std::pair<std::string, chaiscript::Boxed_Value>* std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::_M_allocate_and_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*> >(unsigned long, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>) (in /home/pbpddev/Documents/Test/chai_thread)
  154. ==36369==    by 0x462C3E: std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::reserve(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  155. ==36369==
  156. ==36369== Address 0x4CD3530 is 0 bytes inside a block of size 29 alloc'd
  157. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  158. ==36369==    by 0x37E389C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  159. ==36369==    by 0x37E389CDE4: ??? (in /usr/lib64/libstdc++.so.6.0.13)
  160. ==36369==    by 0x37E389CF32: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  161. ==36369==    by 0x417624: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  162. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  163. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  164. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  165. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  166. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  167. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  168. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  169. ==36369==
  170. ==36369== ----------------------------------------------------------------
  171. ==36369==
  172. ==36369== Lock at 0x6430A38 was first observed
  173. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  174. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  175. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  176. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  177. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  178. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  179. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  180. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  181. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  182. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  183. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  184. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  185. ==36369==
  186. ==36369== Possible data race during read of size 1 at 0x4CD3548 by thread #4
  187. ==36369== Locks held: none
  188. ==36369==    at 0x37E389C48E: std::string::compare(std::string const&) const (in /usr/lib64/libstdc++.so.6.0.13)
  189. ==36369==    by 0x473748: bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  190. ==36369==    by 0x4485CC: std::less<std::string>::operator()(std::string const&, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  191. ==36369==    by 0x4898B3: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_lower_bound(std::_Rb_tree_node<std::string> const*, std::_Rb_tree_node<std::string> const*, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  192. ==36369==    by 0x464056: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  193. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  194. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  195. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  196. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  197. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  198. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  199. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  200. ==36369==
  201. ==36369== This conflicts with a previous write of size 8 by thread #3
  202. ==36369== Locks held: 1, at address 0x6430A38
  203. ==36369==    at 0x5E0271: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&) (in /home/pbpddev/Documents/Test/chai_thread)
  204. ==36369==    by 0x410DAC: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  205. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  206. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  207. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  208. ==36369==    by 0x4A1BB2: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy_a<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value> >(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> >&) (in /home/pbpddev/Documents/Test/chai_thread)
  209. ==36369==    by 0x4889EA: std::pair<std::string, chaiscript::Boxed_Value>* std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::_M_allocate_and_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*> >(unsigned long, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>) (in /home/pbpddev/Documents/Test/chai_thread)
  210. ==36369==    by 0x462C3E: std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::reserve(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  211. ==36369==
  212. ==36369== Address 0x4CD3548 is 24 bytes inside a block of size 29 alloc'd
  213. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  214. ==36369==    by 0x37E389C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  215. ==36369==    by 0x37E389CDE4: ??? (in /usr/lib64/libstdc++.so.6.0.13)
  216. ==36369==    by 0x37E389CF32: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  217. ==36369==    by 0x417624: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  218. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  219. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  220. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  221. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  222. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  223. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  224. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  225. ==36369==
  226. ==36369== ----------------------------------------------------------------
  227. ==36369==
  228. ==36369== Lock at 0x6430A38 was first observed
  229. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  230. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  231. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  232. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  233. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  234. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  235. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  236. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  237. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  238. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  239. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  240. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  241. ==36369==
  242. ==36369== Possible data race during read of size 8 at 0x4CD3ED0 by thread #4
  243. ==36369== Locks held: none
  244. ==36369==    at 0x4A4F7B: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_S_left(std::_Rb_tree_node_base const*) (in /home/pbpddev/Documents/Test/chai_thread)
  245. ==36369==    by 0x4898CE: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_lower_bound(std::_Rb_tree_node<std::string> const*, std::_Rb_tree_node<std::string> const*, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  246. ==36369==    by 0x464056: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  247. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  248. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  249. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  250. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  251. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  252. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  253. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  254. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  255. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  256. ==36369==
  257. ==36369== This conflicts with a previous write of size 8 by thread #3
  258. ==36369== Locks held: 1, at address 0x6430A38
  259. ==36369==    at 0x46F908: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::_M_swap(std::__shared_count<(__gnu_cxx::_Lock_policy)2>&) (in /home/pbpddev/Documents/Test/chai_thread)
  260. ==36369==    by 0x447FEE: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  261. ==36369==    by 0x42F6BB: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  262. ==36369==    by 0x408CCE: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value&&) (in /home/pbpddev/Documents/Test/chai_thread)
  263. ==36369==    by 0x410DC7: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  264. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  265. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  266. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  267. ==36369==
  268. ==36369== Address 0x4CD3ED0 is 16 bytes inside a block of size 40 alloc'd
  269. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  270. ==36369==    by 0x4D863F: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::allocate(unsigned long, void const*) (in /home/pbpddev/Documents/Test/chai_thread)
  271. ==36369==    by 0x4CC36C: std::allocator_traits<std::allocator<std::_Rb_tree_node<std::string> > >::allocate(std::allocator<std::_Rb_tree_node<std::string> >&, unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  272. ==36369==    by 0x4BBC4C: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_get_node() (in /home/pbpddev/Documents/Test/chai_thread)
  273. ==36369==    by 0x4A6ACE: std::_Rb_tree_node<std::string>* std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_create_node<std::string const&>(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  274. ==36369==    by 0x48C356: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_<std::string const&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  275. ==36369==    by 0x48979E: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique_<std::string const&>(std::_Rb_tree_const_iterator<std::string>, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  276. ==36369==    by 0x463F45: void std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique<std::string const*>(std::string const*, std::string const*) (in /home/pbpddev/Documents/Test/chai_thread)
  277. ==36369==    by 0x439B57: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::set(std::initializer_list<std::string>, std::less<std::string> const&, std::allocator<std::string> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  278. ==36369==    by 0x417982: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  279. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  280. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  281. ==36369==
  282. ==36369== ----------------------------------------------------------------
  283. ==36369==
  284. ==36369== Lock at 0x6430A38 was first observed
  285. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  286. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  287. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  288. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  289. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  290. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  291. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  292. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  293. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  294. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  295. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  296. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  297. ==36369==
  298. ==36369== Possible data race during read of size 8 at 0x4CD4028 by thread #4
  299. ==36369== Locks held: none
  300. ==36369==    at 0x4A4F8D: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_S_right(std::_Rb_tree_node_base const*) (in /home/pbpddev/Documents/Test/chai_thread)
  301. ==36369==    by 0x4898E0: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_lower_bound(std::_Rb_tree_node<std::string> const*, std::_Rb_tree_node<std::string> const*, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  302. ==36369==    by 0x464056: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  303. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  304. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  305. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  306. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  307. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  308. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  309. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  310. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  311. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  312. ==36369==
  313. ==36369== This conflicts with a previous write of size 8 by thread #3
  314. ==36369== Locks held: 1, at address 0x6430A38
  315. ==36369==    at 0x5E0271: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&) (in /home/pbpddev/Documents/Test/chai_thread)
  316. ==36369==    by 0x410DAC: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  317. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  318. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  319. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  320. ==36369==    by 0x4A1BB2: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy_a<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value> >(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> >&) (in /home/pbpddev/Documents/Test/chai_thread)
  321. ==36369==    by 0x4889EA: std::pair<std::string, chaiscript::Boxed_Value>* std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::_M_allocate_and_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*> >(unsigned long, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>) (in /home/pbpddev/Documents/Test/chai_thread)
  322. ==36369==    by 0x462C3E: std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::reserve(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  323. ==36369==
  324. ==36369== Address 0x4CD4028 is 24 bytes inside a block of size 40 alloc'd
  325. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  326. ==36369==    by 0x4D863F: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::allocate(unsigned long, void const*) (in /home/pbpddev/Documents/Test/chai_thread)
  327. ==36369==    by 0x4CC36C: std::allocator_traits<std::allocator<std::_Rb_tree_node<std::string> > >::allocate(std::allocator<std::_Rb_tree_node<std::string> >&, unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  328. ==36369==    by 0x4BBC4C: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_get_node() (in /home/pbpddev/Documents/Test/chai_thread)
  329. ==36369==    by 0x4A6ACE: std::_Rb_tree_node<std::string>* std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_create_node<std::string const&>(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  330. ==36369==    by 0x48C356: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_<std::string const&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  331. ==36369==    by 0x48979E: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique_<std::string const&>(std::_Rb_tree_const_iterator<std::string>, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  332. ==36369==    by 0x463F45: void std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique<std::string const*>(std::string const*, std::string const*) (in /home/pbpddev/Documents/Test/chai_thread)
  333. ==36369==    by 0x439B57: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::set(std::initializer_list<std::string>, std::less<std::string> const&, std::allocator<std::string> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  334. ==36369==    by 0x417982: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  335. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  336. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  337. ==36369==
  338. ==36369== ----------------------------------------------------------------
  339. ==36369==
  340. ==36369== Possible data race during read of size 8 at 0x9001F0 by thread #4
  341. ==36369== Locks held: none
  342. ==36369==    at 0x408A20: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  343. ==36369==    by 0x408A6A: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  344. ==36369==    by 0x408A90: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value const&) (in /home/pbpddev/Documents/Test/chai_thread)
  345. ==36369==    by 0x409143: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  346. ==36369==    by 0x56EE6C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  347. ==36369==    by 0x582026: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  348. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  349. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  350. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  351. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  352. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  353. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  354. ==36369==
  355. ==36369== This conflicts with a previous write of size 8 by thread #3
  356. ==36369== Locks held: none
  357. ==36369==    at 0x4C5291: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  358. ==36369==    by 0x4B2E9F: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  359. ==36369==    by 0x49BFBE: std::shared_ptr<chaiscript::Boxed_Value::Data> std::allocate_shared<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  360. ==36369==    by 0x4740C3: std::shared_ptr<chaiscript::Boxed_Value::Data> std::make_shared<chaiscript::Boxed_Value::Data, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  361. ==36369==    by 0x4488BA: _ZN10chaiscript11Boxed_Value11Object_Data3getIKbEEDaOSt10shared_ptrIT_Eb (in /home/pbpddev/Documents/Test/chai_thread)
  362. ==36369==    by 0x448927: chaiscript::Boxed_Value::Boxed_Value<std::shared_ptr<bool const>, void>(std::shared_ptr<bool const>&&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  363. ==36369==    by 0x42FF91: chaiscript::Boxed_Value chaiscript::detail::const_var_impl<bool>(bool const&) (in /home/pbpddev/Documents/Test/chai_thread)
  364. ==36369==    by 0x4090B3: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  365. ==36369==
  366. ==36369== ----------------------------------------------------------------
  367. ==36369==
  368. ==36369== Possible data race during read of size 8 at 0x9001F8 by thread #4
  369. ==36369== Locks held: none
  370. ==36369==    at 0x42FC12: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  371. ==36369==    by 0x408A44: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  372. ==36369==    by 0x408A6A: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  373. ==36369==    by 0x408A90: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value const&) (in /home/pbpddev/Documents/Test/chai_thread)
  374. ==36369==    by 0x409143: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  375. ==36369==    by 0x56EE6C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  376. ==36369==    by 0x582026: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  377. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  378. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  379. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  380. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  381. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  382. ==36369==
  383. ==36369== This conflicts with a previous write of size 8 by thread #3
  384. ==36369== Locks held: none
  385. ==36369==    at 0x4D2AF9: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, chaiscript::Boxed_Value::Data*, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  386. ==36369==    by 0x4C530D: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  387. ==36369==    by 0x4B2E9F: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  388. ==36369==    by 0x49BFBE: std::shared_ptr<chaiscript::Boxed_Value::Data> std::allocate_shared<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  389. ==36369==    by 0x4740C3: std::shared_ptr<chaiscript::Boxed_Value::Data> std::make_shared<chaiscript::Boxed_Value::Data, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  390. ==36369==    by 0x4488BA: _ZN10chaiscript11Boxed_Value11Object_Data3getIKbEEDaOSt10shared_ptrIT_Eb (in /home/pbpddev/Documents/Test/chai_thread)
  391. ==36369==    by 0x448927: chaiscript::Boxed_Value::Boxed_Value<std::shared_ptr<bool const>, void>(std::shared_ptr<bool const>&&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  392. ==36369==    by 0x42FF91: chaiscript::Boxed_Value chaiscript::detail::const_var_impl<bool>(bool const&) (in /home/pbpddev/Documents/Test/chai_thread)
  393. ==36369==
  394. ==36369== ----------------------------------------------------------------
  395. ==36369==
  396. ==36369== Possible data race during read of size 4 at 0x4D2AD48 by thread #4
  397. ==36369== Locks held: none
  398. ==36369==    at 0x406300: __gnu_cxx::__atomic_add(int volatile*, int) (in /home/pbpddev/Documents/Test/chai_thread)
  399. ==36369==    by 0x4063BD: __gnu_cxx::__atomic_add_dispatch(int*, int) (in /home/pbpddev/Documents/Test/chai_thread)
  400. ==36369==    by 0x448522: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy() (in /home/pbpddev/Documents/Test/chai_thread)
  401. ==36369==    by 0x42FC36: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  402. ==36369==    by 0x408A44: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  403. ==36369==    by 0x408A6A: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  404. ==36369==    by 0x408A90: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value const&) (in /home/pbpddev/Documents/Test/chai_thread)
  405. ==36369==    by 0x409143: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  406. ==36369==    by 0x56EE6C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  407. ==36369==    by 0x582026: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  408. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  409. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  410. ==36369==
  411. ==36369== Address 0x4D2AD48 is 8 bytes inside a block of size 80 alloc'd
  412. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  413. ==36369==    by 0x4D2813: __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) (in /home/pbpddev/Documents/Test/chai_thread)
  414. ==36369==    by 0x4C4D8D: std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  415. ==36369==    by 0x4D2B23: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, chaiscript::Boxed_Value::Data*, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  416. ==36369==    by 0x4C530D: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  417. ==36369==    by 0x4B2E9F: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  418. ==36369==    by 0x49BFBE: std::shared_ptr<chaiscript::Boxed_Value::Data> std::allocate_shared<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  419. ==36369==    by 0x4740C3: std::shared_ptr<chaiscript::Boxed_Value::Data> std::make_shared<chaiscript::Boxed_Value::Data, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  420. ==36369==    by 0x4488BA: _ZN10chaiscript11Boxed_Value11Object_Data3getIKbEEDaOSt10shared_ptrIT_Eb (in /home/pbpddev/Documents/Test/chai_thread)
  421. ==36369==    by 0x448927: chaiscript::Boxed_Value::Boxed_Value<std::shared_ptr<bool const>, void>(std::shared_ptr<bool const>&&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  422. ==36369==    by 0x42FF91: chaiscript::Boxed_Value chaiscript::detail::const_var_impl<bool>(bool const&) (in /home/pbpddev/Documents/Test/chai_thread)
  423. ==36369==    by 0x4090B3: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  424. ==36369==
  425. ==36369== ----------------------------------------------------------------
  426. ==36369==
  427. ==36369== Lock at 0x6430A38 was first observed
  428. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  429. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  430. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  431. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  432. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  433. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  434. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  435. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  436. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  437. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  438. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  439. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  440. ==36369==
  441. ==36369== Possible data race during read of size 8 at 0x4CD3470 by thread #4
  442. ==36369== Locks held: none
  443. ==36369==    at 0x37E389C47D: std::string::compare(std::string const&) const (in /usr/lib64/libstdc++.so.6.0.13)
  444. ==36369==    by 0x473748: bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  445. ==36369==    by 0x4485CC: std::less<std::string>::operator()(std::string const&, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  446. ==36369==    by 0x4640A8: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  447. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  448. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  449. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  450. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  451. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  452. ==36369==    by 0x5829B5: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  453. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  454. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  455. ==36369==
  456. ==36369== This conflicts with a previous write of size 8 by thread #3
  457. ==36369== Locks held: 1, at address 0x6430A38
  458. ==36369==    at 0x5E0271: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&) (in /home/pbpddev/Documents/Test/chai_thread)
  459. ==36369==    by 0x410DAC: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  460. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  461. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  462. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  463. ==36369==    by 0x4A1BB2: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy_a<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value> >(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> >&) (in /home/pbpddev/Documents/Test/chai_thread)
  464. ==36369==    by 0x4889EA: std::pair<std::string, chaiscript::Boxed_Value>* std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::_M_allocate_and_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*> >(unsigned long, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>) (in /home/pbpddev/Documents/Test/chai_thread)
  465. ==36369==    by 0x462C3E: std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::reserve(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  466. ==36369==
  467. ==36369== Address 0x4CD3470 is 0 bytes inside a block of size 28 alloc'd
  468. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  469. ==36369==    by 0x37E389C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  470. ==36369==    by 0x37E389CDE4: ??? (in /usr/lib64/libstdc++.so.6.0.13)
  471. ==36369==    by 0x37E389CF32: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  472. ==36369==    by 0x4175CE: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  473. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  474. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  475. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  476. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  477. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  478. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  479. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  480. ==36369==
  481. ==36369== ----------------------------------------------------------------
  482. ==36369==
  483. ==36369== Lock at 0x6430A38 was first observed
  484. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  485. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  486. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  487. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  488. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  489. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  490. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  491. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  492. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  493. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  494. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  495. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  496. ==36369==
  497. ==36369== Possible data race during read of size 1 at 0x4CD3488 by thread #4
  498. ==36369== Locks held: none
  499. ==36369==    at 0x37E389C48E: std::string::compare(std::string const&) const (in /usr/lib64/libstdc++.so.6.0.13)
  500. ==36369==    by 0x473748: bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  501. ==36369==    by 0x4485CC: std::less<std::string>::operator()(std::string const&, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  502. ==36369==    by 0x4640A8: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  503. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  504. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  505. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  506. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  507. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  508. ==36369==    by 0x5829B5: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  509. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  510. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  511. ==36369==
  512. ==36369== This conflicts with a previous write of size 8 by thread #3
  513. ==36369== Locks held: 1, at address 0x6430A38
  514. ==36369==    at 0x5E0271: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string&&) (in /home/pbpddev/Documents/Test/chai_thread)
  515. ==36369==    by 0x410DAC: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  516. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  517. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  518. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  519. ==36369==    by 0x4A1BB2: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy_a<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value> >(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> >&) (in /home/pbpddev/Documents/Test/chai_thread)
  520. ==36369==    by 0x4889EA: std::pair<std::string, chaiscript::Boxed_Value>* std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::_M_allocate_and_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*> >(unsigned long, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>) (in /home/pbpddev/Documents/Test/chai_thread)
  521. ==36369==    by 0x462C3E: std::vector<std::pair<std::string, chaiscript::Boxed_Value>, std::allocator<std::pair<std::string, chaiscript::Boxed_Value> > >::reserve(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  522. ==36369==
  523. ==36369== Address 0x4CD3488 is 24 bytes inside a block of size 28 alloc'd
  524. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  525. ==36369==    by 0x37E389C3C8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  526. ==36369==    by 0x37E389CDE4: ??? (in /usr/lib64/libstdc++.so.6.0.13)
  527. ==36369==    by 0x37E389CF32: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib64/libstdc++.so.6.0.13)
  528. ==36369==    by 0x4175CE: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  529. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  530. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  531. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  532. ==36369==    by 0x56193C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Def(bool, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  533. ==36369==    by 0x54FC15: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Statements(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  534. ==36369==    by 0x53DEF0: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse_internal(std::string const&, std::string) (in /home/pbpddev/Documents/Test/chai_thread)
  535. ==36369==    by 0x51A1C9: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::parse(std::string const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  536. ==36369==
  537. ==36369== ----------------------------------------------------------------
  538. ==36369==
  539. ==36369== Possible data race during read of size 8 at 0x900200 by thread #4
  540. ==36369== Locks held: none
  541. ==36369==    at 0x408A20: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  542. ==36369==    by 0x408A6A: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  543. ==36369==    by 0x408A90: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value const&) (in /home/pbpddev/Documents/Test/chai_thread)
  544. ==36369==    by 0x409156: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  545. ==36369==    by 0x56EF2C: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  546. ==36369==    by 0x582026: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  547. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  548. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  549. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  550. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  551. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  552. ==36369==    by 0x56D1D7: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  553. ==36369==
  554. ==36369== This conflicts with a previous write of size 8 by thread #3
  555. ==36369== Locks held: none
  556. ==36369==    at 0x4C5291: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  557. ==36369==    by 0x4B2E9F: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  558. ==36369==    by 0x49BFBE: std::shared_ptr<chaiscript::Boxed_Value::Data> std::allocate_shared<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  559. ==36369==    by 0x4740C3: std::shared_ptr<chaiscript::Boxed_Value::Data> std::make_shared<chaiscript::Boxed_Value::Data, chaiscript::Type_Info, chaiscript::detail::Any, bool, bool const*&, bool&>(chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, bool const*&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  560. ==36369==    by 0x4488BA: _ZN10chaiscript11Boxed_Value11Object_Data3getIKbEEDaOSt10shared_ptrIT_Eb (in /home/pbpddev/Documents/Test/chai_thread)
  561. ==36369==    by 0x448927: chaiscript::Boxed_Value::Boxed_Value<std::shared_ptr<bool const>, void>(std::shared_ptr<bool const>&&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  562. ==36369==    by 0x42FF91: chaiscript::Boxed_Value chaiscript::detail::const_var_impl<bool>(bool const&) (in /home/pbpddev/Documents/Test/chai_thread)
  563. ==36369==    by 0x40910E: chaiscript::const_var(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  564. ==36369==
  565. ==36369== ----------------------------------------------------------------
  566. ==36369==
  567. ==36369== Possible data race during read of size 4 at 0x900238 by thread #4
  568. ==36369== Locks held: none
  569. ==36369==    at 0x5DFD37: __cxa_thread_atexit (in /home/pbpddev/Documents/Test/chai_thread)
  570. ==36369==    by 0x45FC9A: chaiscript::detail::threading::Thread_Storage<chaiscript::detail::Stack_Holder>::t() (in /home/pbpddev/Documents/Test/chai_thread)
  571. ==36369==    by 0x4369BA: chaiscript::detail::threading::Thread_Storage<chaiscript::detail::Stack_Holder>::operator*() (in /home/pbpddev/Documents/Test/chai_thread)
  572. ==36369==    by 0x4155E3: chaiscript::detail::Dispatch_Engine::get_stack_holder() (in /home/pbpddev/Documents/Test/chai_thread)
  573. ==36369==    by 0x416219: chaiscript::detail::Dispatch_State::Dispatch_State(chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  574. ==36369==    by 0x41ADDD: chaiscript::ChaiScript_Basic::do_eval(std::string const&, std::string const&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  575. ==36369==    by 0x41F082: chaiscript::ChaiScript_Basic::eval(std::string const&, std::shared_ptr<chaiscript::detail::Exception_Handler_Base> const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  576. ==36369==    by 0x466BC4: void chaiscript::Module::apply_eval<chaiscript::ChaiScript_Basic, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > >(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, chaiscript::ChaiScript_Basic&) (in /home/pbpddev/Documents/Test/chai_thread)
  577. ==36369==    by 0x43C108: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  578. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  579. ==36369==    by 0x41B842: chaiscript::ChaiScript_Basic::build_eval_system(std::shared_ptr<chaiscript::Module> const&, std::vector<chaiscript::Options, std::allocator<chaiscript::Options> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  580. ==36369==    by 0x41DD03: chaiscript::ChaiScript_Basic::ChaiScript_Basic(std::shared_ptr<chaiscript::Module> const&, std::unique_ptr<chaiscript::parser::ChaiScript_Parser_Base, std::default_delete<chaiscript::parser::ChaiScript_Parser_Base> >&&, std::vector<std::string, std::allocator<std::string> >, std::vector<std::string, std::allocator<std::string> >, std::vector<chaiscript::Options, std::allocator<chaiscript::Options> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  581. ==36369==
  582. ==36369== This conflicts with a previous write of size 4 by thread #3
  583. ==36369== Locks held: none
  584. ==36369==    at 0x37D800C63B: pthread_key_create (in /lib64/libpthread-2.12.so)
  585. ==36369==    by 0x5DFCCE: (anonymous namespace)::key_init() (in /home/pbpddev/Documents/Test/chai_thread)
  586. ==36369==    by 0x37D800CD32: pthread_once (in /lib64/libpthread-2.12.so)
  587. ==36369==    by 0x5DFD36: __cxa_thread_atexit (in /home/pbpddev/Documents/Test/chai_thread)
  588. ==36369==    by 0x45FC9A: chaiscript::detail::threading::Thread_Storage<chaiscript::detail::Stack_Holder>::t() (in /home/pbpddev/Documents/Test/chai_thread)
  589. ==36369==    by 0x4369BA: chaiscript::detail::threading::Thread_Storage<chaiscript::detail::Stack_Holder>::operator*() (in /home/pbpddev/Documents/Test/chai_thread)
  590. ==36369==    by 0x4155E3: chaiscript::detail::Dispatch_Engine::get_stack_holder() (in /home/pbpddev/Documents/Test/chai_thread)
  591. ==36369==    by 0x416219: chaiscript::detail::Dispatch_State::Dispatch_State(chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  592. ==36369==
  593. ==36369== ----------------------------------------------------------------
  594. ==36369==
  595. ==36369== Possible data race during read of size 8 at 0x900210 by thread #4
  596. ==36369== Locks held: none
  597. ==36369==    at 0x408A20: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  598. ==36369==    by 0x408A6A: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  599. ==36369==    by 0x408A90: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value const&) (in /home/pbpddev/Documents/Test/chai_thread)
  600. ==36369==    by 0x409036: chaiscript::void_var() (in /home/pbpddev/Documents/Test/chai_thread)
  601. ==36369==    by 0x5CDF24: chaiscript::eval::Method_AST_Node<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail> >::eval_internal(chaiscript::detail::Dispatch_State const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  602. ==36369==    by 0x50C0A6: chaiscript::eval::AST_Node_Impl<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail> >::eval(chaiscript::detail::Dispatch_State const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  603. ==36369==    by 0x5D158E: chaiscript::eval::File_AST_Node<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail> >::eval_internal(chaiscript::detail::Dispatch_State const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  604. ==36369==    by 0x50C0A6: chaiscript::eval::AST_Node_Impl<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail> >::eval(chaiscript::detail::Dispatch_State const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  605. ==36369==    by 0x41ADEE: chaiscript::ChaiScript_Basic::do_eval(std::string const&, std::string const&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  606. ==36369==    by 0x41F082: chaiscript::ChaiScript_Basic::eval(std::string const&, std::shared_ptr<chaiscript::detail::Exception_Handler_Base> const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  607. ==36369==    by 0x466BC4: void chaiscript::Module::apply_eval<chaiscript::ChaiScript_Basic, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > >(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, chaiscript::ChaiScript_Basic&) (in /home/pbpddev/Documents/Test/chai_thread)
  608. ==36369==    by 0x43C108: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  609. ==36369==
  610. ==36369== This conflicts with a previous write of size 8 by thread #3
  611. ==36369== Locks held: none
  612. ==36369==    at 0x49B78B: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  613. ==36369==    by 0x473581: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  614. ==36369==    by 0x448406: std::shared_ptr<chaiscript::Boxed_Value::Data> std::allocate_shared<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  615. ==36369==    by 0x42FACC: std::shared_ptr<chaiscript::Boxed_Value::Data> std::make_shared<chaiscript::Boxed_Value::Data, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  616. ==36369==    by 0x40892A: chaiscript::Boxed_Value::Object_Data::get(chaiscript::Boxed_Value::Void_Type, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  617. ==36369==    by 0x42FF0F: chaiscript::Boxed_Value::Boxed_Value<chaiscript::Boxed_Value::Void_Type, void>(chaiscript::Boxed_Value::Void_Type&&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  618. ==36369==    by 0x409007: chaiscript::void_var() (in /home/pbpddev/Documents/Test/chai_thread)
  619. ==36369==    by 0x5CDF24: chaiscript::eval::Method_AST_Node<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail> >::eval_internal(chaiscript::detail::Dispatch_State const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  620. ==36369==
  621. ==36369== ----------------------------------------------------------------
  622. ==36369==
  623. ==36369== Lock at 0x6430A38 was first observed
  624. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  625. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  626. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  627. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  628. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  629. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  630. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  631. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  632. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  633. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  634. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  635. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  636. ==36369==
  637. ==36369== Possible data race during read of size 4 at 0x4CB8F28 by thread #4
  638. ==36369== Locks held: none
  639. ==36369==    at 0x4062E6: __gnu_cxx::__exchange_and_add(int volatile*, int) (in /home/pbpddev/Documents/Test/chai_thread)
  640. ==36369==    by 0x40637A: __gnu_cxx::__exchange_and_add_dispatch(int*, int) (in /home/pbpddev/Documents/Test/chai_thread)
  641. ==36369==    by 0x447D02: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (in /home/pbpddev/Documents/Test/chai_thread)
  642. ==36369==    by 0x42F40E: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (in /home/pbpddev/Documents/Test/chai_thread)
  643. ==36369==    by 0x4085C1: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (in /home/pbpddev/Documents/Test/chai_thread)
  644. ==36369==    by 0x4085DB: std::shared_ptr<chaiscript::Boxed_Value::Data>::~shared_ptr() (in /home/pbpddev/Documents/Test/chai_thread)
  645. ==36369==    by 0x408AAB: chaiscript::Boxed_Value::~Boxed_Value() (in /home/pbpddev/Documents/Test/chai_thread)
  646. ==36369==    by 0x466BD0: void chaiscript::Module::apply_eval<chaiscript::ChaiScript_Basic, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > > >(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, chaiscript::ChaiScript_Basic&) (in /home/pbpddev/Documents/Test/chai_thread)
  647. ==36369==    by 0x43C108: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  648. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  649. ==36369==    by 0x41B842: chaiscript::ChaiScript_Basic::build_eval_system(std::shared_ptr<chaiscript::Module> const&, std::vector<chaiscript::Options, std::allocator<chaiscript::Options> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  650. ==36369==    by 0x41DD03: chaiscript::ChaiScript_Basic::ChaiScript_Basic(std::shared_ptr<chaiscript::Module> const&, std::unique_ptr<chaiscript::parser::ChaiScript_Parser_Base, std::default_delete<chaiscript::parser::ChaiScript_Parser_Base> >&&, std::vector<std::string, std::allocator<std::string> >, std::vector<std::string, std::allocator<std::string> >, std::vector<chaiscript::Options, std::allocator<chaiscript::Options> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  651. ==36369==
  652. ==36369== This conflicts with a previous write of size 8 by thread #3
  653. ==36369== Locks held: 1, at address 0x6430A38
  654. ==36369==    at 0x46F908: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::_M_swap(std::__shared_count<(__gnu_cxx::_Lock_policy)2>&) (in /home/pbpddev/Documents/Test/chai_thread)
  655. ==36369==    by 0x447FEE: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  656. ==36369==    by 0x42F6BB: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  657. ==36369==    by 0x408CCE: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value&&) (in /home/pbpddev/Documents/Test/chai_thread)
  658. ==36369==    by 0x410DC7: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  659. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  660. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  661. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  662. ==36369==
  663. ==36369== Address 0x4CB8F28 is 8 bytes inside a block of size 80 alloc'd
  664. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  665. ==36369==    by 0x4D2813: __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) (in /home/pbpddev/Documents/Test/chai_thread)
  666. ==36369==    by 0x4C4D8D: std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  667. ==36369==    by 0x4B2977: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::_Sp_make_shared_tag, chaiscript::Boxed_Value::Data*, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  668. ==36369==    by 0x49B807: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  669. ==36369==    by 0x473581: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr<std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::_Sp_make_shared_tag, std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  670. ==36369==    by 0x448406: std::shared_ptr<chaiscript::Boxed_Value::Data> std::allocate_shared<chaiscript::Boxed_Value::Data, std::allocator<chaiscript::Boxed_Value::Data>, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(std::allocator<chaiscript::Boxed_Value::Data> const&, chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  671. ==36369==    by 0x42FACC: std::shared_ptr<chaiscript::Boxed_Value::Data> std::make_shared<chaiscript::Boxed_Value::Data, chaiscript::Type_Info, chaiscript::detail::Any, bool, decltype(nullptr), bool&>(chaiscript::Type_Info&&, chaiscript::detail::Any&&, bool&&, decltype(nullptr)&&, bool&) (in /home/pbpddev/Documents/Test/chai_thread)
  672. ==36369==    by 0x40892A: chaiscript::Boxed_Value::Object_Data::get(chaiscript::Boxed_Value::Void_Type, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  673. ==36369==    by 0x42FF0F: chaiscript::Boxed_Value::Boxed_Value<chaiscript::Boxed_Value::Void_Type, void>(chaiscript::Boxed_Value::Void_Type&&, bool) (in /home/pbpddev/Documents/Test/chai_thread)
  674. ==36369==    by 0x409007: chaiscript::void_var() (in /home/pbpddev/Documents/Test/chai_thread)
  675. ==36369==    by 0x5CDF24: chaiscript::eval::Method_AST_Node<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail> >::eval_internal(chaiscript::detail::Dispatch_State const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  676. ==36369==
  677. ==36369== ---Thread-Announcement------------------------------------------
  678. ==36369==
  679. ==36369== Thread #2 was created
  680. ==36369==    at 0x37D78E899E: clone (in /lib64/libc-2.12.so)
  681. ==36369==    by 0x37D80068BF: do_clone.clone.0 (in /lib64/libpthread-2.12.so)
  682. ==36369==    by 0x37D8006DA1: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so)
  683. ==36369==    by 0x4A0C7F8: ??? (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  684. ==36369==    by 0x4A0C907: pthread_create@* (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  685. ==36369==    by 0x37E38B65A6: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib64/libstdc++.so.6.0.13)
  686. ==36369==    by 0x447A6B: std::thread::thread<void (&)()>(void (&)()) (in /home/pbpddev/Documents/Test/chai_thread)
  687. ==36369==    by 0x40680F: main (in /home/pbpddev/Documents/Test/chai_thread)
  688. ==36369==
  689. ==36369== ----------------------------------------------------------------
  690. ==36369==
  691. ==36369== Lock at 0x6430A38 was first observed
  692. ==36369==    at 0x4A0B903: pthread_mutex_lock (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  693. ==36369==    by 0x406267: __gthread_mutex_lock(pthread_mutex_t*) (in /home/pbpddev/Documents/Test/chai_thread)
  694. ==36369==    by 0x407C09: std::mutex::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  695. ==36369==    by 0x43BEDE: std::unique_lock<std::mutex>::lock() (in /home/pbpddev/Documents/Test/chai_thread)
  696. ==36369==    by 0x430242: std::unique_lock<std::mutex>::unique_lock(std::mutex&) (in /home/pbpddev/Documents/Test/chai_thread)
  697. ==36369==    by 0x410EED: chaiscript::detail::Dispatch_Engine::add_global_const(chaiscript::Boxed_Value const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  698. ==36369==    by 0x411A3C: chaiscript::detail::Dispatch_Engine::add(chaiscript::Type_Info const&, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  699. ==36369==    by 0x48C539: _ZZN10chaiscript6Module5applyINS_6detail15Dispatch_EngineEN9__gnu_cxx17__normal_iteratorIPKSt4pairINS_9Type_InfoESsESt6vectorIS8_SaIS8_EEEEEEvT0_SF_RT_ENKUlRKSG_E_clIS8_EEDaRKT_ (in /home/pbpddev/Documents/Test/chai_thread)
  700. ==36369==    by 0x48C59F: _ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPKSt4pairIN10chaiscript9Type_InfoESsESt6vectorIS5_SaIS5_EEEEZNS3_6Module5applyINS3_6detail15Dispatch_EngineESB_EEvT0_SG_RT_EUlRKSH_E_ESG_SH_SH_SG_ (in /home/pbpddev/Documents/Test/chai_thread)
  701. ==36369==    by 0x466ABD: void chaiscript::Module::apply<chaiscript::detail::Dispatch_Engine, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > > >(__gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, __gnu_cxx::__normal_iterator<std::pair<chaiscript::Type_Info, std::string> const*, std::vector<std::pair<chaiscript::Type_Info, std::string>, std::allocator<std::pair<chaiscript::Type_Info, std::string> > > >, chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  702. ==36369==    by 0x43C098: void chaiscript::Module::apply<chaiscript::ChaiScript_Basic, chaiscript::detail::Dispatch_Engine>(chaiscript::ChaiScript_Basic&, chaiscript::detail::Dispatch_Engine&) const (in /home/pbpddev/Documents/Test/chai_thread)
  703. ==36369==    by 0x41E57C: chaiscript::ChaiScript_Basic::add(std::shared_ptr<chaiscript::Module> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  704. ==36369==
  705. ==36369== Possible data race during read of size 8 at 0x4CD4110 by thread #2
  706. ==36369== Locks held: none
  707. ==36369==    at 0x37E389C476: std::string::compare(std::string const&) const (in /usr/lib64/libstdc++.so.6.0.13)
  708. ==36369==    by 0x473748: bool std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /home/pbpddev/Documents/Test/chai_thread)
  709. ==36369==    by 0x4485CC: std::less<std::string>::operator()(std::string const&, std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  710. ==36369==    by 0x4640A8: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::find(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  711. ==36369==    by 0x439C1A: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::count(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  712. ==36369==    by 0x417B08: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  713. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  714. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  715. ==36369==    by 0x56EDCD: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Id(bool) (in /home/pbpddev/Documents/Test/chai_thread)
  716. ==36369==    by 0x5829B5: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Dot_Fun_Array() (in /home/pbpddev/Documents/Test/chai_thread)
  717. ==36369==    by 0x57A0EB: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Value() (in /home/pbpddev/Documents/Test/chai_thread)
  718. ==36369==    by 0x56D6A3: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::Operator(unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  719. ==36369==
  720. ==36369== This conflicts with a previous write of size 8 by thread #3
  721. ==36369== Locks held: 1, at address 0x6430A38
  722. ==36369==    at 0x46F908: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::_M_swap(std::__shared_count<(__gnu_cxx::_Lock_policy)2>&) (in /home/pbpddev/Documents/Test/chai_thread)
  723. ==36369==    by 0x447FEE: std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<chaiscript::Boxed_Value::Data, (__gnu_cxx::_Lock_policy)2>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  724. ==36369==    by 0x42F6BB: std::shared_ptr<chaiscript::Boxed_Value::Data>::shared_ptr(std::shared_ptr<chaiscript::Boxed_Value::Data>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  725. ==36369==    by 0x408CCE: chaiscript::Boxed_Value::Boxed_Value(chaiscript::Boxed_Value&&) (in /home/pbpddev/Documents/Test/chai_thread)
  726. ==36369==    by 0x410DC7: std::pair<std::string, chaiscript::Boxed_Value>::pair(std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  727. ==36369==    by 0x4D6FD5: void std::_Construct<std::pair<std::string, chaiscript::Boxed_Value>, std::pair<std::string, chaiscript::Boxed_Value> >(std::pair<std::string, chaiscript::Boxed_Value>*, std::pair<std::string, chaiscript::Boxed_Value>&&) (in /home/pbpddev/Documents/Test/chai_thread)
  728. ==36369==    by 0x4C9E52: std::pair<std::string, chaiscript::Boxed_Value>* std::__uninitialized_copy<false>::__uninit_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  729. ==36369==    by 0x4B823F: std::pair<std::string, chaiscript::Boxed_Value>* std::uninitialized_copy<std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*>(std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::move_iterator<std::pair<std::string, chaiscript::Boxed_Value>*>, std::pair<std::string, chaiscript::Boxed_Value>*) (in /home/pbpddev/Documents/Test/chai_thread)
  730. ==36369==
  731. ==36369== Address 0x4CD4110 is 32 bytes inside a block of size 40 alloc'd
  732. ==36369==    at 0x4A078C3: operator new(unsigned long) (in /opt/rh/devtoolset-3/root/usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
  733. ==36369==    by 0x4D863F: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::string> >::allocate(unsigned long, void const*) (in /home/pbpddev/Documents/Test/chai_thread)
  734. ==36369==    by 0x4CC36C: std::allocator_traits<std::allocator<std::_Rb_tree_node<std::string> > >::allocate(std::allocator<std::_Rb_tree_node<std::string> >&, unsigned long) (in /home/pbpddev/Documents/Test/chai_thread)
  735. ==36369==    by 0x4BBC4C: std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_get_node() (in /home/pbpddev/Documents/Test/chai_thread)
  736. ==36369==    by 0x4A6ACE: std::_Rb_tree_node<std::string>* std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_create_node<std::string const&>(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  737. ==36369==    by 0x48C356: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_<std::string const&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  738. ==36369==    by 0x48979E: std::_Rb_tree_iterator<std::string> std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique_<std::string const&>(std::_Rb_tree_const_iterator<std::string>, std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  739. ==36369==    by 0x463F45: void std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique<std::string const*>(std::string const*, std::string const*) (in /home/pbpddev/Documents/Test/chai_thread)
  740. ==36369==    by 0x439B57: std::set<std::string, std::less<std::string>, std::allocator<std::string> >::set(std::initializer_list<std::string>, std::less<std::string> const&, std::allocator<std::string> const&) (in /home/pbpddev/Documents/Test/chai_thread)
  741. ==36369==    by 0x417982: chaiscript::Name_Validator::is_reserved_word(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  742. ==36369==    by 0x417D46: chaiscript::Name_Validator::valid_object_name(std::string const&) (in /home/pbpddev/Documents/Test/chai_thread)
  743. ==36369==    by 0x57B330: chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<chaiscript::eval::Noop_Tracer_Detail>, chaiscript::optimizer::Optimizer<chaiscript::optimizer::Partial_Fold, chaiscript::optimizer::Unused_Return, chaiscript::optimizer::Constant_Fold, chaiscript::optimizer::If, chaiscript::optimizer::Return, chaiscript::optimizer::Dead_Code, chaiscript::optimizer::Block, chaiscript::optimizer::For_Loop, chaiscript::optimizer::Assign_Decl>, 512ul>::validate_object_name(std::string const&) const (in /home/pbpddev/Documents/Test/chai_thread)
  744. ==36369==
  745. ==36369== ----------------------------------------------------------------
  746. ==36369==
  747. ==36369== Possible data race during read of size 4 at 0x900238 by thread #4
  748. ==36369== Locks held: none
  749. ==36369==    at 0x5DFD37: __cxa_thread_atexit (in /home/pbpddev/Documents/Test/chai_thread)
  750. ==36369==    by 0x448B5E: chaiscript::detail::threading::Thread_Storage<std::set<std::type_info const*, chaiscript::Type_Conversions::Less_Than, std::allocator<std::type_info const*> > >::t() (in /home/pbpddev/Documents/Test/chai_thread)
  751. ==36369==    by 0x430150: chaiscript::detail::threading::Thread_Storage<std::set<std::type_info const*, chaiscript::Type_Conversions::Less_Than, std::allocator<std::type_info const*> > >::~Thread_Storage() (in /home/pbpddev/Documents/Test/chai_thread)
  752. ==36369==    by 0x410847: chaiscript::Type_Conversions::~Type_Conversions() (in /home/pbpddev/Documents/Test/chai_thread)
  753. ==36369==    by 0x41D889: chaiscript::detail::Dispatch_Engine::~Dispatch_Engine() (in /home/pbpddev/Documents/Test/chai_thread)
  754. ==36369==    by 0x41DEB7: chaiscript::ChaiScript_Basic::~ChaiScript_Basic() (in /home/pbpddev/Documents/Test/chai_thread)
  755. ==36369==    by 0x42ECDB: chaiscript::ChaiScript::~ChaiScript() (in /home/pbpddev/Documents/Test/chai_thread)
  756. ==36369==    by 0x4066E6: call_from_thread() (in /home/pbpddev/Documents/Test/chai_thread)
  757. ==36369==    by 0x54F98C: void std::_Bind_simple<void (*())()>::_M_invoke<>(std::_Index_tuple<>) (in /home/pbpddev/Documents/Test/chai_thread)
  758. ==36369==    by 0x53DD5C: std::_Bind_simple<void (*())()>::operator()() (in /home/pbpddev/Documents/Test/chai_thread)
  759. ==36369==    by 0x51A151: std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (in /home/pbpddev/Documents/Test/chai_thread)
  760. ==36369==    by 0x37E38B646F: ??? (in /usr/lib64/libstdc++.so.6.0.13)
  761. ==36369==
  762. ==36369== This conflicts with a previous write of size 4 by thread #3
  763. ==36369== Locks held: none
  764. ==36369==    at 0x37D800C63B: pthread_key_create (in /lib64/libpthread-2.12.so)
  765. ==36369==    by 0x5DFCCE: (anonymous namespace)::key_init() (in /home/pbpddev/Documents/Test/chai_thread)
  766. ==36369==    by 0x37D800CD32: pthread_once (in /lib64/libpthread-2.12.so)
  767. ==36369==    by 0x5DFD36: __cxa_thread_atexit (in /home/pbpddev/Documents/Test/chai_thread)
  768. ==36369==    by 0x45FC9A: chaiscript::detail::threading::Thread_Storage<chaiscript::detail::Stack_Holder>::t() (in /home/pbpddev/Documents/Test/chai_thread)
  769. ==36369==    by 0x4369BA: chaiscript::detail::threading::Thread_Storage<chaiscript::detail::Stack_Holder>::operator*() (in /home/pbpddev/Documents/Test/chai_thread)
  770. ==36369==    by 0x4155E3: chaiscript::detail::Dispatch_Engine::get_stack_holder() (in /home/pbpddev/Documents/Test/chai_thread)
  771. ==36369==    by 0x416219: chaiscript::detail::Dispatch_State::Dispatch_State(chaiscript::detail::Dispatch_Engine&) (in /home/pbpddev/Documents/Test/chai_thread)
  772. ==36369==
  773. ==36369==
  774. ==36369== For counts of detected and suppressed errors, rerun with: -v
  775. ==36369== Use --history-level=approx or =none to gain increased speed, at
  776. ==36369== the cost of reduced accuracy of conflicting-access information
  777. ==36369== ERROR SUMMARY: 42025 errors from 17 contexts (suppressed: 475 from 46)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top