hunk.code_window: ]
   apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
   apply from: "../../node_modules/react-native/react.gradle"
   apply from: "../../node_modules/expo-updates/scripts/create-manifest-android.gradle"
   /**
  
hunk.labels: keep keep keep add keep keep keep
hunk.after_edit: apply from: "../../node_modules/expo-constants/scripts/get-app-config-android.gradle"
  
hunk.file_path: templates/expo-template-bare-minimum/android/app/build.gradle
hunk.type: add
file: //////////////////////////////////////////////////////////////////////////////
  //
  // (C) Copyright Ion Gaztanaga 2006. Distributed under the Boost
  // Software License, Version 1.0. (See accompanying file
  // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  //
  // See http://www.boost.org/libs/interprocess for documentation.
  //
  //////////////////////////////////////////////////////////////////////////////
  
  #include<boost/interprocess/exceptions.hpp>
  #include <boost/interprocess/detail/posix_time_types_wrk.hpp>
  #include <boost/interprocess/sync/scoped_lock.hpp>
  
  #ifndef BOOST_CONFIG_HPP
  #  include <boost/config.hpp>
  #endif
  #
  #if defined(BOOST_HAS_PRAGMA_ONCE)
  #  pragma once
  #endif
  
  namespace boost {
  namespace interprocess {
  
  inline barrier::barrier(unsigned int count)
     : m_threshold(count), m_count(count), m_generation(0)
  {
     if (count == 0)
        throw std::invalid_argument("count cannot be zero.");
  }
  
  inline barrier::~barrier(){}
  
  inline bool barrier::wait()
  {
     scoped_lock<interprocess_mutex> lock(m_mutex);
     unsigned int gen = m_generation;
  
     if (--m_count == 0){
        m_generation++;
        m_count = m_threshold;
        m_cond.notify_all();
        return true;
     }
  
     while (gen == m_generation){
        m_cond.wait(lock);
     }
     return false;
  }
  
  }  //namespace interprocess {
  }  //namespace boost {
  