# Copyright 2017 Alexander Karzhenkov # 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) import property-set ; import feature : feature ; import toolset ; import features/os-feature ; #| tag::doc[] [[bbv2.builtin.features.threadapi]]`threadapi`:: *Allowed values:* `pthread`, `win32`. + Selects threading implementation. The default is `win32` if `` is `windows` and `pthread` otherwise. |# # end::doc[] feature threadapi : pthread win32 : symmetric propagated ; toolset.add-defaults windows:win32 ; rule get-default ( property-set ) { local api = pthread ; if [ $(property-set).get ] = windows { api = win32 ; } return $(api) ; } # Obsolete rule that didn't quite work. Remove this # after all references to it have been cleaned up. rule detect ( properties * ) { # local ps = [ property-set.create $(properties) ] ; # local api = [ $(ps).get ] ; # if ! $(api) { api = [ get-default $(ps) ] ; } # return $(api) threadapi:target-os ; }